Rust를 시작했습니다. 배워두면 언젠간 쓸 데가 있겠죠

당분간은 TRPL(The Rust Programming Language) 공부하면서 중요하다고 생각하는 것만 정리해 올릴 생각입니다.

 

TRPL 맨 앞에 있는 예제입니다.

rand 버전은 0.5.6입니다. 0.6 넘어가면 gen_range가 없어요.

use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main() {
	println!("Guessing game!");
	let secret_number = rand::thread_rng().gen_range(1, 101);
	
	loop {
		println!("Please input your guess.");
		let mut guess = String::new();
		io::stdin()
			.read_line(&mut guess)
			.expect("Failed to read line");
	
		let guess: u32 = match guess.trim().parse() {
			Ok(num) => num,
			Err(_) => continue,
		};
		
		println!("You guessed: {}", guess);
	
		match guess.cmp(&secret_number) {
			Ordering::Less => println!("Too small!"),
			Ordering::Greater => println!("Too big!"),
			Ordering::Equal => {
				println!("You win!");
				break;
			},
		}
	}
}
  • mut: mutable 키워드. 이걸 붙이지 않으면 immutable
  • loop: 무한 루프
  • let guess: 위에 guess가 있는데 이걸 덮을 수 있다(shadowing). guess_str 이런식으로 임시변수를 만들지 않아도 됨
  • Ok, Err: Result Enum값
  • println!: 매크로. 매크로 뒤에는 느낌표(!)가 붙는다.
  • match: 패턴매칭 이용한 control flow

재밌네요. 빨리 Lifetime과 Ownership에 대해 배우고 싶습니다.

 

 

참고 링크

반응형