Rust 함수 작성하기

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 Rust 에서 함수를 작성하는 방법을 배웁니다. 함수는 fn 키워드를 사용하여 선언되고, 인수는 타입이 주석으로 표시됩니다. 반환 타입 (필요한 경우) 은 화살표 -> 뒤에 지정됩니다. 함수의 마지막 표현식은 반환 값으로 사용되지만, return 문을 사용하여 이전에 값을 반환할 수도 있습니다. 이 실습에서는 FizzBuzz 프로그램을 함수를 사용하여 다시 작성한 예제를 제공하여 부울 값을 반환하는 함수, 단위 타입 ()를 반환하는 함수, 반환 타입이 지정되지 않은 함수의 사용법을 보여줍니다.

참고: 실습에서 파일 이름을 지정하지 않으면 원하는 파일 이름을 사용할 수 있습니다. 예를 들어 main.rs를 사용하고 rustc main.rs && ./main으로 컴파일 및 실행할 수 있습니다.

함수

함수는 fn 키워드를 사용하여 선언합니다. 함수의 인수는 변수와 마찬가지로 타입이 주석으로 표시되고, 함수가 값을 반환하는 경우 반환 타입은 화살표 -> 뒤에 명시되어야 합니다.

함수의 마지막 표현식이 반환 값으로 사용됩니다. 또는 return 문을 사용하여 함수 내에서, 루프나 if 문 내부에서도 값을 더 일찍 반환할 수 있습니다.

FizzBuzz 를 함수를 사용하여 다시 작성해 보겠습니다!

// C/C++ 와 달리 함수 정의 순서에 제약이 없습니다.
fn main() {
    // 여기서 이 함수를 사용할 수 있으며, 나중에 정의할 수 있습니다.
    fizzbuzz_to(100);
}

// 부울 값을 반환하는 함수
fn is_divisible_by(lhs: u32, rhs: u32) -> bool {
    // 예외 처리, 조기 반환
    if rhs == 0 {
        return false;
    }

    // 이것은 표현식이며, `return` 키워드가 여기서는 필요하지 않습니다.
    lhs % rhs == 0
}

// 값을 "반환하지 않는" 함수는 실제로 단위 타입 `()` 를 반환합니다.
fn fizzbuzz(n: u32) -> () {
    if is_divisible_by(n, 15) {
        println!("fizzbuzz");
    } else if is_divisible_by(n, 3) {
        println!("fizz");
    } else if is_divisible_by(n, 5) {
        println!("buzz");
    } else {
        println!("{}", n);
    }
}

// 함수가 `()` 를 반환하는 경우, 반환 타입을 서명에서 생략할 수 있습니다.
fn fizzbuzz_to(n: u32) {
    for n in 1..=n {
        fizzbuzz(n);
    }
}

요약

축하합니다! 함수 실습을 완료했습니다. LabEx 에서 더 많은 실습을 통해 기술을 향상시킬 수 있습니다.