Rust 함수
함수
Rust에서 함수(function)를 선언하기 위해서는 "fn" 키워드를 사용한다.
fn main() { write_header(); } fn write_header() { println!("Copyright (c) rust-lang.xyz"); }
- 함수는 "fn" 키워드로 정의한다.
- 함수명과 변수명은 소문자의 snake case를 사용한다. 예를 들어, create_log, place_bid_or_fail.
- 함수를 외부에서 사용할 수 있도록 pub fn와 같이 정의할 수 있다.
- 피호출 함수는 호출함수 뒤에 와도 상관없다. 즉, 함수의 위치는 무관하다.
함수 파라미터
Rust에서 함수 파라미터는 함수명 뒤의 괄호 안에 "파라미터명: 데이타타입" 과 같은 방식으로 정의되고, 복수 개의 파라미터가 있는 경우 콤마로 구분한다. 아래 예제는 3개의 파라미터를 받아들이고 있는데, 각 파라미터명 뒤에 데이타타입을 명시하고 있다. 컴파일러는 이 파라미터 타입을 보고 잘못된 데이타가 전달되는지 체크(type checking)하게 된다.
fn main() { print_data(101, 'F', true); } fn print_data(id: i16, score: char, retest: bool) { println!("ID: {}, SCORE: {}, RETEST: {}", id, score, retest); }
함수 리턴
Rust에서 함수가 값을 리턴할 경우 함수 파라미터들이 지정된 괄호 뒤에 화살표(->)를 넣은 후 리턴타입을 지정하게 된다. 여기서 리턴 변수명은 지정하지 않고 리턴되는 데이타 타입만을 지정한다. 아래 예제는 add() 함수가 2개의 정수를 받아들여 그 합을 리턴하는 예이다.
fn main() { let c = add(1, 2); println!("{}", c); } fn add(a: i32, b: i32) -> i32 { dbg!(a, b); return a + b; }