zoukankan      html  css  js  c++  java
  • 【Rust】模块可见性

    环境

    • Rust 1.56.1
    • VSCode 1.61.2

    概念

    参考:https://doc.rust-lang.org/stable/rust-by-example/mod/visibility.html

    示例

    默认情况下,模块中的项都是私有有的,可以通过 pub 关键字来进行公开。可以使用 mod 关键字定义模块。

    公开函数

    // 定义一个 my_mode 的模块
    mod my_mod {
        //定义一个公开的函数
        pub fn function() {
            println!("called `my_mod::function()`");
        }
    }
    
    fn main() {
        // 双冒号访问
        my_mod::function();
    }
    

    私有函数

    // 定义一个 my_mode 的模块
    mod my_mod {
        //定义一个公开的函数
        pub fn function() {
            println!("called `my_mod::function()`");
            // 同一个模块不受公共和私有的限制
            private_function();
        }
    
        // 默认私有
        fn private_function() {
            println!("called `my_mod::private_function()`");
        }
    }
    
    fn main() {
        // 双冒号访问
        my_mod::function();
        // 编译错误,私有的不能访问
        // my_mod::private_function();
    }
    

    当前 crate 可用

    // 定义一个 my_mode 的模块
    mod my_mod {
        // `pub(crate)` 使得函数只在当前 crate 中可见
        pub(crate) fn public_function_in_crate() {
            println!("called `my_mod::public_function_in_crate()");
        }
    }
    
    fn main() {
        // 双冒号访问
        my_mod::public_function_in_crate();
    }
    

    总结

    了解了 Rust 中模块的可见性问题,默认是私有的,如果需要公开使用 pub 关键字。

    附录

  • 相关阅读:
    MYSQL之基本操作
    Python操作Mysql之基本操作
    编辑器
    iOS项目评估报告
    mac安装as配置
    屏幕适配
    CocoaPods配置步骤
    android网络监测
    获取通讯录
    json解析
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/15643080.html
Copyright © 2011-2022 走看看