mod
는 네임스페이스와 비슷한 역활을 한다. mod
는 소스코드에서 함수나 매크로 상수, 구조체 등의 요소를 묶는다.
mod sausage_factory {
fn make_sausage() {
println!("sausage!");
}
}
mod
안에서 선언된 모든 요소들은 기본적으로 private다. mod
밖에서 해당 요소에 접근할려면 pub
를 붙여줘야 한다.
mod sausage_factory {
pub fn make_sausage() {
println!("sausage!");
}
}
fn main() {
sausage_factory::make_sausage();
}
하지만 주의해야할 점이 있다. 상위 범위가 public이라고 해서 그 안의 요소가 public이 되지 않는다. 해당 요소에 접근할려면 반드시 지나가는 모든 범위가 public이여야 한다. 그래서 module안에 들어간 module이나 module에서 선언된 함수와 상수나 구조체의 맴버 변수들에 접근할 때 조심해야한다. 이들을 감싸는 요소들도 pub
가 붙어야 한다.
mod delicious_snacks {
pub mod fruits {
pub const PEAR: &'static str = "Pear";
pub const APPLE: &'static str = "Apple";
}
}
'Archive > Rust' 카테고리의 다른 글
[Rustlings] 10. String (0) | 2021.05.26 |
---|---|
[Rustlings] 9. collection (0) | 2021.05.25 |
[Rustlings] 7. enum (0) | 2021.05.21 |
[Rustlings] 6. struct (0) | 2021.05.16 |
[Rustlings] 5. Primitive Types (0) | 2021.05.15 |