함수 선언은 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가 오면 에러가 발생한다.
'Archive > Rust' 카테고리의 다른 글
[Rustlings] 6. struct (0) | 2021.05.16 |
---|---|
[Rustlings] 5. Primitive Types (0) | 2021.05.15 |
[Rustlings] 4. Move Semantics (0) | 2021.05.14 |
[Rustlings] 3. if (0) | 2021.05.12 |
[Rustlings] 1. Variables (0) | 2021.05.11 |