4

Stage 1 | Belajar Rust #2

 2 years ago
source link: https://dev.to/myusufadp/stage-1-belajar-rust-2-5al5
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Belajar Rust #2

Untuk stage ini masih sangat "Easy Peasy Lemon Squeezy”, dalam stage ini saya akan membahas hal-hal basic mengenai Rust. Jika kalian kepo saya menggunakan Replit untuk menulis code-nya, jika kalian ingin menggunakan local text-editor silahkan saja, tapi jangan lupa install Rust-nya loh wajib hukumnya, banyak tutorial di google dan youtube kok.

Semua Rust code ditulis didalam file dengan .rs extension

1. Program Pertama Saya

fn main() {
    println!("Halo, dunia!");
}

Enter fullscreen mode

Exit fullscreen mode

fn → function notation

main() → mendeklarasi sebuah main function

Anatomi dari Program Halo, dunia!

  • main function adalah awal dari setiap program Rust.
  • Apa saja yang diisi dalam sepasang kurung kurawal {} merupakan block of code.
  • println! macro menerima string “Halo, dunia!” dan memunculkannya di screen/ terminal.

Apa sih macro?

Macro merupakan sebuah expression yang memiliki tanda seru (bukan berarti dia asik loh tapi tanda ! ← itu) sebelum kurung (), contohnya.

macro_name!();

Enter fullscreen mode

Exit fullscreen mode

Compile dan Run Program

➜  ~ rustc src/main.rs 
➜  ~ ./main 
Halo, dunia!

Enter fullscreen mode

Exit fullscreen mode

2. Formating Dasar

Sekarang saya ingin mengenalkan kepada kalian bagaimana untuk format sebuat statement di Rust dengan gaya yang beda-beda. Di bab 1 (anggap aja bab kali ye) kita sudah mengetahui bagaimana cara print sebuah string ke console . “Tapi kan saya gak mungkin mau print string/ kata statik saja?”, eittss tenang saja kita bisa kok print strings dalam format tertentu menggunakan placeholders yang sudah disediakan oleh Rust.

println!("{}", 18);

Enter fullscreen mode

Exit fullscreen mode

{} → Placeholder notation

18 → Placeholder value

Note: Rust tidak mengijinkan kita sekalipun/ haram hukumnya untuk print numbers maupun variables secara langsung di println!() macro. Kita perlu placeholder {} untuk print numbers maupun variables.

Single Placeholder

Ketika kita ingin melakukan print sebuah single value kita bisa menggunakan single placeholder

fn main() {
    println!("Tanggal: {}", 18);
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

Tanggal: 18

Enter fullscreen mode

Exit fullscreen mode

Multiple Placeholders

Selain single placeholder, kita juga bisa menggunakan multiple placeholders di println!() macro. Jumlah dari placeholders harus/ wajib (fardhu ain) sama dengan jumlah values yang akan di print.

fn main() {
    println!("My name is {}, you can call me {}", "Adi", "Kincup");
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

My name is Adi, you can call me Kincup

Enter fullscreen mode

Exit fullscreen mode

Positional Arguments

Kita bisa menspesifikan dimana posisi sebuah values berada. Setiap value kita diberikan nomor berdasarkan urutan. Value pertama diberi nilai 0, berikutnya diberi nilai 1, dan seterusnya berurutan.

Kenapa?

Values bisa di taruh di urutan mana saja

Kita bisa menulis value 1 kali dan digunakan beberapa kali

fn main() {
    println!("My name is {1}, you can call me {0} or {1}", "Adi", "Kincup");
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

My name is Kincup, you can call me Adi or Kincup

Enter fullscreen mode

Exit fullscreen mode

Named Arguments

Kita bisa juga memberikan nama argument dan assign sebuah value. Konsep yang diberikan mirip dengan positional arguments namun kita bisa assign value secara explicit.

fn main() {
    println!("My name is {name}, you can call me {call} or {name}", name = "Adi",call = "Kincup");
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

My name is Adi, you can call me Kincup or Adi

Enter fullscreen mode

Exit fullscreen mode

Placeholder Traits

Kita bisa mengkonversi value ke binary, hexadecimal, atau octal

fn main() {
    println!("Umur : 23, biner: {:b}, hexa: {:x}, octal: {:o}", 23, 23, 23);
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

Umur : 23, biner: 10111, hexa: 17, octal: 27

Enter fullscreen mode

Exit fullscreen mode

Basic Math

Kita bisa melakukan kalkulasi basic dan placeholder akan menunjukan hasilnya.

fn main() {
    println!("{} * {} = {}", 2, 3, 2 * 3);
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

2 * 3 = 6

Enter fullscreen mode

Exit fullscreen mode

Placeholder for a Debug Trait

Jika kita ingin mencoba/ testing print banyak nilai namun kita malas menggunakan multiple placeholders, kita bisa menggunakan single placeholder dengan bantuann debug trait ({:?}).

fn main() {
    println!("{:?}", ("I am super very handsome!", 100));
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

("I am super very handsome!", 100)

Enter fullscreen mode

Exit fullscreen mode

3. Printing Style

Macro Printing style

print!() print string ke console

println!() sama seperti print!(), namun menambahkan enter atau baris baru di akhir string

eprint!() print dengan status error

eprintln!() sama seperti eprint!(), namun menambahkan enter atau baris baru di akhir

4. Comments

Comments merupakan instruksi yang bisa dibaca oleh programmer untuk membantu menjelaskan mengenai code. Comments tidak dibaca oleh compiler.

Line Comments //

Comments ini sangat direkomendasikan untuk mengkomentari sebuah line single

// ini fungsi main loh
fn main() {
  // ini fakta
    println!("{:?}", ("I am super very handsome!", 100)); // jangan lupa ini fakta
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

("I am super very handsome!", 100)

Enter fullscreen mode

Exit fullscreen mode

Block Comments /* . . . */

Comments ini digunakan untuk men-disable large chunk of code.

// ini fungsi main loh
fn main() {
  // ini fakta
    /* 
  println!("{:?}", ("I am super very handsome!", 100));
  */ 
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

Enter fullscreen mode

Exit fullscreen mode

Doc Comments /// or //!

→ Outer Doc Comments (///) → ditulis di luar blok code.

→ Inner Doc Comments (//!) → ditulis di dalam blok code.

/// ini outer doc comment
/// jangan lupa loh
fn main() {
  //! ini fakta
  //! ditulis fakta aja
    println!("{:?}", ("I am super very handsome!", 100)); 
}

Enter fullscreen mode

Exit fullscreen mode

→ Output

("I am super very handsome!", 100)

Enter fullscreen mode

Exit fullscreen mode

Keep Learning Guys

Bantuan Kopi untuk Begadang : https://saweria.co/myusufadp


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK