rust

22.10.10 [TRPL] #2. guessing_game

슈팅스타제제 2022. 10. 11. 01:53

기본 변수는 불변성 

따라서 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);