함수는 모든 프로그래밍 언어에서 흔히 쓰이며, 어디서든 볼 수 있습니다.
fn main() {
println!("Hello, world!");
another_function();
}
fn another_function() {
println!("Another function.");
}
벌써 main이라는 함수를 선언하고 사용한걸 볼 수 있는거처럼 말이죠.
fn main() {
another_function(5);
}
fn another_function(x: i32) {
println!("The value of x is: {x}");
}
x
라는 파라미터값을 받아오는 걸 볼 수 있습니다.
fn
이라는 예약어로 함수 선언이라는 것을 알리며
another_function
등의 이름을 붙이며, 그 뒤 ()
에 파라미터 선언을 해줍니다.
그리고 {}
사이에 해당 함수의 할 일들을 입력해주죠.
그리고 더 많은 인자값을 원한다면 다음처럼이요.
fn print_labeled_measurement(value: i32, unit_label: char) {
println!("The measurement is: {value}{unit_label}");
}
보다시피 함수의 주 명령문들은 {}
안에 입력되어있습니다.
그러기에 다음과 같은 형태로 파라미터와 이름을 생략할 수도 있습니다.
let y = {
let x = 3;
x + 1
};
println!("The value of y is: {y}");
x + 1
끝에는 다른 줄들과는 달리 세미콜론이 존재하지않습니다.
그러기에 반환값으로 취급되어 y
에 4가 바인딩되지만
만약 세미콜론을 붙이게 된다면 그는 명령문으로 취급되어 y
에는 아무것도 바인딩되지않습니다.
fn five() -> i32 {
5
}
fn main() {
let x = five();
println!("The value of x is: {x}");
}
함수 파라미터 선언 이후 ->
를 통해 반환값의 타입을 선언해줍니다.
그리고 반환값의 경우 표현식처럼 세미콜론을 제거해주어야합니다.
있다면 명령문으로 평가받기 때문이죠
그리고 에러가 나겠죠