Updated:

less than 1 minute read

개요

  • 반환 시 표현식(구문과는 다르게 세미 콜론이 없는) 혹은 return 사용
  • 함수 포인터
    • fn 타입


예제 - 개요

  • 코드
    •  fn f1() {
           println!("f1 call");
       }
              
       fn f2(i: i32) {
           println!("f2 call : {}", i);
       }
              
       fn f3() -> i32 {
           1
       }
              
       fn f4() -> i32 {
           return 1;
       }
              
       fn main() {
           f1();
           f2(1);
           println!("{}", f3());
           println!("{}", f4());
       }
      
  • 실행 결과
    •  f1 call
       f2 call : 1
       1
       1
      


예제 - 함수 포인터

  • 코드
    •  fn func1(i: i32) -> String {
           i.to_string()
       }
              
       fn func2(f: fn(i32) -> String, i: i32) {
           println!("{}", f(i));
       }
              
       fn func3(f: fn(i32) -> String) -> fn(i32) -> String {
           f
       }
              
       fn main() {
           func2(func1, 1);
           func2(func1, 2);
              
           println!("{}", func3(func1)(3));
       }
      
  • 실행 결과
    •  1
       2
       3