use std::io;fnmain(){println!("Guess the number!");println!("Please input your guess.");letmut guess =String::new(); io::stdin().read_line(&mut guess).expect("Failed to read line");println!("You guessed: {}", guess);}
The first line use std::io brings the standard io (input/output) library into scope. We've covered main and println!, so let's go into let, mut, and String::new. let is used to defined variables, like so:
let foo = bar;
A standard variable is immutable (cannot be changed), but mut makes it mutable.
let foo = bar;// immutableletmut foo2 = bar;// mutable
Here's the error message you will see if you try to change an immutable variable.
Rust also binds variables to a certain type when they are initialized. For example, with line :
guess is bound to an empty string. Here's an example of how this works:
The next part of the code, .read_line(&mut guess), calls the read_line method on the standard input handle to get input from the user. We’re also passing one argument to read_line: &mut guess. read_line requires a string as a parameter and that string must be mutable. The & indicates that it is a reference. References are immutable by default, so the &mut guess is required.