모듈-Module

Kurt·2023년 9월 15일

[Rust Language]

목록 보기
17/24

개요

Rust에서 모듈에 대한 이해


모듈

  1. 모듈은 코드를 하나의 논리적인 단위로 묶은 것이다.
  2. 모듈 안에는 함수, enum, struct, 상수, 변수 등의 Item들이 들어 갈 수 있다.
  3. 모듈은 mod라는 키워드 뒤에 모듈명을 적어 표시한다.

Private, Public

모듈 안에 Item은 기본적으로 Private라고 한다.

Private

Private가 뭔지는 잘 몰라도 Private는 외부에서 못쓰겠구나를 알 수 있다.

Public

외부에서 사용하기 위해서는 pub라는 키워드를 사용하여 public하게 사용해야 한다.

모듈 예시

mod 키워드 뒤에 모듈 이름을 지정하고 안에 동작하는 Item을 넣는다.
다음과 같이 생성한다.

mod hi_mod {
    fn say_hi() {
        println!("HI");
    }
}

fn main() {
    hi_mod::say_hi();
}

이렇게 위와 같이 작성하게 되면 동작하지 않을 것이다.
이유는 아까 배웠던 PrivatePublic 속성 때문이다.
기본적으로 Private 속성이기 때문에 모듈 밖으로 벗어난 say_hi 함수를 main 함수에서 사용할 수 없다.

다음과 같이 코드를 수정한다.

mod hi_mod {
    pub fn say_hi() {
        println!("HI");
    }
}

fn main() {
    hi_mod::say_hi();
}

위처럼 수정 후 실행 시 성공적으로 HI가 출력되는 것을 확인할 수 있다.
만약 hi_mod 자체가 main과 다른 위치에 존재한다면 아래와 같이 hi_mod에도 pub를 선언해야 한다.

pub mod hi_mod {
    pub fn say_hi() {
        println!("HI");
    }
}

fn main() {
    hi_mod::say_hi();
}

use

생성한 모듈 안에는 다른 모듈을 정의할 수 있고 해당 모듈 안에 여러가지 Item을 구성할 수 있다.
이렇게 되면 무지 복잡할 텐데 use를 사용하여 아래와 같이 간략하게 할 수 있다.

use 사용 전

fn main() {
    a::series::of::nested_modules();
}

use 사용 후

use a::series::of::nested_modules;

fn main() {
    nested_modules();
}

출처:
> YONGJIN LAB - [Rust] 모듈
> 예제로 배우는 Rust 프로그래밍 - 17-모듈-Module


profile
내 인생이라는 프로젝트의 최고 버전을 만들기 위해

0개의 댓글