Archive/Rust

[Rustlings] 2. Functions

함수 선언은 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