Rust 입문
[Rust] super
바로크냥
2022. 10. 11. 20:44
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 한 함수도 사용 가능합니다.
반응형