Archive/Rust
[Rustlings] 2. Functions
steelbear
2021. 5. 11. 11:00
함수 선언은 fn 예약어를 통해 선언한다. 함수 이름은 관례로 snake case을 따른다. 함수 선언 위치는 따로 존재하지 않는다. 즉, 함수 선언이 해당 함수 호출보다 뒤에 있어도 에러 없이 작동한다.
fn main() {
println!("Hello, World!");
}
함수 매개변수에는 반드시 타입을 지정해줘야 한다.
fn print_num(num: i32) {
println!("number : {}", num);
}
함수 반환 타입은 매개변수 뒤에 명시된다. 또한 반환값은 return으로 넘긴 값이나 쓰거나 가장 마지막에 처리된 expression의 결과가 된다. expression은 값을 반환하는 식이다. 5+4
같은 연산식이나 값을 반환하는 함수의 호출이나 코드블럭이 대표적인 expression이다. 반대의 개념으로 statement가 있는데, statement는 값을 반환하지 않는 명령이다. let y = 5;
나 값을 반환하지않은 함수 호출이나 코드 블럭, ;을 붙인 expression들도 statement다.
fn add_one(num: i32) -> i32 {
num + 1
}
fn add_five(num: i32) -> i32 {
let five = 5;
num + five
}
fn no_more_than_five(num: i32) -> i32 {
if num > 5 {
return 5;
}
num
}
여기서 주의할 점은 반환값이 될 expression은 가장 마지막에 처리되야 한다는 점이다. expression 뒤에 또다른 expression이나 statement가 오면 에러가 발생한다.