Rust, function

오병진·2022년 8월 23일
0

Learnning Rust

목록 보기
6/7

함수는 모든 프로그래밍 언어에서 흔히 쓰이며, 어디서든 볼 수 있습니다.

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}");
}

함수 파라미터 선언 이후 ->를 통해 반환값의 타입을 선언해줍니다.

그리고 반환값의 경우 표현식처럼 세미콜론을 제거해주어야합니다.
있다면 명령문으로 평가받기 때문이죠

그리고 에러가 나겠죠

profile
지나가는 사람입니다. 마저 지나갈게요 :D

0개의 댓글