기본 변수는 불변성
따라서 re-assign 할 수 없다.
하지만 가변성 변수를 사용하고 싶다면?!
변수명 앞에 mut 를 붙여주면 된다.
//immuable
let guess
//mutable
let mut guess
사용자에게 인풋값 받기
io::stdin().read_line(&mut guess).expect("Failed to read line");
read_line 함수가 사용자에게서 인풋값을 받으면 result 라는 변수와 함께 결과값을 담아서 리턴한다.
Result 는 enum 타입으로 ok, Err 상태값이 있다.
ok 상태라면 인풋값을 변수로 사용할 수 있고
Err 상태라면 expect 코드가 에러 핸들링을 하게끔 실행한다.
인풋값이 어떻게 들어올지 모르기 때문에 .expect 없이 다음과 같이 경고가 뜬다.
io::stdin().read_line(&mut guess); //X
println!
값 출력하기
랜덤 함수 이용하기
cargo.toml 에
rand = "0.8.3" 추가하기
cargo builld 하고 cargo update 해준다.
그러면 lock 파일도 수정됨!
rand 함수를 사용 가능하게 설정했으니
secret_number 에 랜덤값을 할당해준다.
use rand::Rng;
let secret_number = rand::thread_rng().gen_range(1..=100);