3. super
“super”는 자식 모듈에서 부모 모듈을 지칭할 때 사용하는 키워드입니다.
이것을 통해서 부모 모듈에 있는 함수와 모듈에 접근할 수 있습니다.
mod first { // 1 부모 모듈
pub fn func_first1() {
println!("in first func1");
}
fn func_first2() {
println!("in first func2");
}
pub mod second{ // 2 자식 모듈
pub fn func_second(){
super::func_first1(); // 4
super::func_first2();
}
}
}
fn main() {
first::second::func_second(); // 3
}
// 출력
in first func1
in first func2
// 1: first 모듈에는 “pub”으로 공개된 func_first1과 private 하게 공개되지 않은 func_first2가 있습니다.
그리고 공개된 자식 모듈 second가 있습니다.
// 2: Second 모듈에는 공개된 함수 func_second가 있습니다.
이 함수는 부모 모듈에 있는 두 함수를 실행합니다.
// 3: 그리고 main 함수에서는 이 func_second 함수만을 실행합니다.
// 4: super를 통해 부모 모듈에 있는 함수와 모듈에 접근합니다.
super를 사용할 때는 부모 모듈의 private한 함수도 사용 할 수 있습니다.
// 출력: 부모 모듈의 두 함수 모두 제대로 실행되었습니다.
이처럼 “super” 키워드는 자식 모듈에서 부모 모듈의 함수를 사용할 수 있게 해 줍니다.
이때는 부모 모듈의 private 한 함수도 사용 가능합니다.
반응형
'Rust 입문' 카테고리의 다른 글
[Rust] Generic (0) | 2022.10.12 |
---|---|
[Rust] use 사용하기 (0) | 2022.10.11 |
[Rust] 모듈 (파일) (0) | 2022.10.11 |
[Rust] 모듈 (0) | 2022.10.11 |
[Rust] 참조 (대여) (0) | 2022.10.09 |