Rust, 쉽게 하자!

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 한 함수도 사용 가능합니다.

 

 
반응형

'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