Rust에서 모듈에 대한 이해
mod라는 키워드 뒤에 모듈명을 적어 표시한다.모듈 안에 Item은 기본적으로 Private라고 한다.
Private가 뭔지는 잘 몰라도 Private는 외부에서 못쓰겠구나를 알 수 있다.
외부에서 사용하기 위해서는 pub라는 키워드를 사용하여 public하게 사용해야 한다.
mod 키워드 뒤에 모듈 이름을 지정하고 안에 동작하는 Item을 넣는다.
다음과 같이 생성한다.
mod hi_mod {
fn say_hi() {
println!("HI");
}
}
fn main() {
hi_mod::say_hi();
}
이렇게 위와 같이 작성하게 되면 동작하지 않을 것이다.
이유는 아까 배웠던 Private와 Public 속성 때문이다.
기본적으로 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();
}
생성한 모듈 안에는 다른 모듈을 정의할 수 있고 해당 모듈 안에 여러가지 Item을 구성할 수 있다.
이렇게 되면 무지 복잡할 텐데 use를 사용하여 아래와 같이 간략하게 할 수 있다.
fn main() {
a::series::of::nested_modules();
}
use a::series::of::nested_modules;
fn main() {
nested_modules();
}
출처:
> YONGJIN LAB - [Rust] 모듈
> 예제로 배우는 Rust 프로그래밍 - 17-모듈-Module