Mengambil bilangan bulat sebagai masukan di Rust tidaklah sulit, hanya memerlukan lebih banyak baris kode untuk menulis daripada dalam bahasa seperti Python.

Seperti yang kita ketahui, langkah pertama adalah menggunakan modul std::io untuk mengambil input standar di Rust.

use std::io;
fn main() {
  let mut input = String::new();
  println!("Enter your query :");
  io::stdin().read_line(&mut input).expect("Failed to read input");
 }

Kita tahu bahwa kode atas digunakan untuk menangani String.

Sekarang kita harus menggunakan satu baris lagi:

let num: u32 = input.trim().parse().expect("Invalid input");

trim() : biasanya digunakan untuk menghilangkan spasi di depan dan di belakang (spasi, tab, baris baru, dll.)
parse() : fungsi ini sangat penting karena digunakan untuk mengubah string menjadi nilai tipe data lain, seperti bilangan bulat, float, atau tipe khusus, dengan mengurai konten string.

Ini kode lengkapnya:

use std::io;

fn main() {
    let mut input = String::new();

    println!("Enter an integer:");
    io::stdin().read_line(&mut input).expect("Failed to read line");

    let num: i32 = input.trim().parse().expect("Invalid input");

    println!("You entered: {}", num);
}

Jika Anda berpikir, jika penggunaan trim()hanya untuk menghilangkan spasi atau spasi tambahan, lalu mengapa menggunakannya saat kita memberikan masukan tanpa spasi tambahan.

Jadi, ingatlah ini :
Jika Anda menghapus trim(), maka pernyataan fungsi expect() akan ditampilkan karena metode read_line() membaca baris input, termasuk karakter baris baru (\n), dan menambahkannya ke String yang disediakan. Jadi, ketika Anda memasukkan 32 dan menekan Enter, variabel input berisi "32\n" (termasuk karakter baris baru).
Saat Anda mencoba mengurai string ini menjadi u32 menggunakan a.parse(), parser menemukan karakter baris baru di akhir memasukkan. Parsing berhenti pada titik ini, dan parser tidak menggunakan karakter baris baru.