Handout: Level up your rust knowledge
WORK IN PROGRESS
Rust
- All primitive types will naturally always directly go on the stack
& itu reference
Variable
- variable dalam rust secara default merupakan immutable yang artinya jika data sudah di initiate maka object tersebut tidak dapat dirubah.
Contoh variable1
2
3
4let nama = "Meetup Rust Indonesia";
let tahun = 2017;
let hello = format!("{} {}", nama, tahun);
println!("{:?}, hello)
Value in rust immutable
1 | let tahun = 2017; |
Mutability is also part of the type of borrowed pointer
1 | fn inc(i: &int) { |
Fungsi di rust menggunakan fn
diikuti dengan nama fungsi, argumen, tipe return dan block kode.
Contohnya
1 | fn namaFungsi(argumen: i32, argumen2: i32) -> bool { |
Bisa kita lihat fungsi diatas bernama namaFungsi
dengan dua argumen bertipe i32 dan returnnya adalah boolean. Perlu diketahui tipe return digunakan setelah operator ->
Contoh fungsi berikutnya tanpa return value dan argumen:
1 | fn namaFungsiDua() { |
Contoh menulis loop didalam sebuah fungsi
1 | fn bagi_tiga(min: i32, max_exclusive: i32) { |
Fungsi diatas melakaukan pengecekan dari min
dan max_exclusive
dengan dua 32 bit ineteger Lalu menggunakan for - in loop dengan dua input dan melakukan pengecekan dari range data yang dibuat apakah bisa dibagi tiga atau tidak lalu menggunakan statement println
Struct
- data structure memiliki key-value entities
- setiap key-value bisa menggunakan tipe data berbeda
1 | struct Rust { |
Struct with function
1 | fn next_meetup(nama_: &str, bulan_: i32, tahun_: i32) -> Rust { |
Vector
- resizable array
- Bisa memmuat integers, floats, Strings, hingga Structs
1 | let deret = vec![1,2,3]; |
Vector of Structs
1 | fn next_year() ->Vec(Rust) { |
Ownership
- Saferty dan Concurrency Rust
Cargo Doc - Documentation generator
GC
non determistic destyction
Video GB
GC membutuhkan memori yang banyak agar lebih efisien
System Programming build libraries your application will use
Can’t have two bindings to the same vector in rust
Zero cost abstractions
Ownership: C allocate memory on a heap you need to have free statement at the end right to clear the heap memoery