728x90
콘솔에서 입력 받기
입출력 기능 : std::io모듈을 통해 처리된다.
세상에서 가장 안전한 언어 답게
ok() // 정당하게
except() // 함수가 정확하게 작동하지 않았을 때
추가하여 사용해줘야만 한다.
use std::io;
fn main () {
println!("What's your name. noble warrior?");
let mut buf = String::new();
io::stdin().read_line(&mut buf)
.ok()
.expect("Failed to read ljine");
println!("{}, that's a mighty name indeed!", buf.trim());
let input_num: Result<u32, _> = buf.trim().parse();
println!("Unwrap found {}", input_num.unwrap());
}
match사용방법
match를 통해 enum Result의 값을 사용할 수 있다.
아래에 코드를 보면 숫자가 내려오면 input에 숫자가 들어가면 Matched로 나오지만
String으로 들어가면 No Matched가 나온다.
use std::io;
fn main () {
println!("What's your name. noble warrior?");
let mut buf = String::new();
io::stdin().read_line(&mut buf)
.ok()
.expect("Failed to read ljine");
println!("{}, that's a mighty name indeed!", buf.trim());
let input_num: Result<u32, _> = buf.trim().parse();
// println!("Unwrap found {}", input_num.unwrap());
// match input_num {
// Ok(num) => println!("{}", num),
// Err(ex) => println!("Please input an integer number! {}", ex)
// };
let num = match input_num {
Ok(num) => num,
Err(_) => 0
};
if let Ok(val) = input_num {
println!("Matched {:?}!", val);
}
else {
println!("No match");
}
}
고려해야할 사항
아래의 코드는 2가지 변수에 대해서 고려되어 있지만, 이외의 값이 들어올 경우를 대비해서 _ 값도 항상 같이 정의해 놓자.
fn main () {
let magician = "Gandalf";
match magician {
"Gandalf" => println!("A good magician"),
"Sauron" => println!("A magician turned bad"),
_ => println!("No magician turned up!") // Gandalf, Sauron이외의 값이 들어올 수도 있다.
};
}
여러가지 패턴
fn main () {
let magician = "Gandalf";
match magician {
"Gandalf" => println!("A good magician"),
"Sauron" => println!("A magician turned bad"),
_ => println!("No magician turned up!")
};
let magical_number:i32 = 42;
match magical_number {
1 => println!("Unity"),
2 | 3 | 5 | 7 | 11 => println!("Ok, these are primes"),
40..=42 => println!("It is contained in this range"), // 40..42는 패턴이 아니다. 40~42까지 범위를 가르킴
_ => println!("No magic at all!")
};
}
728x90
'Language > Rust' 카테고리의 다른 글
일반화된 자료구조와 함수 (0) | 2021.10.10 |
---|---|
고차원 함수와 매개변수화를 통한 코드 일반화 (0) | 2021.10.09 |
데이터 구조화 (0) | 2021.10.06 |
함수와 제어문 (0) | 2021.10.06 |
변수 (0) | 2021.10.04 |
댓글