rust 路径(Path),pub关键字, pub struct, pub enum

路径 (Path)

  • 为了在 Rust 的模块中找到某个条目,需要使用路径

  • 路径的两种形式:

    • 绝对路径: 从 crate root 开始,使用 crate 名或字面值 crate

    • 相对路径: 从当前模块开始,使用 self,super 或当前模块的标识符

  • 路径至少由一个标识符组成,标识符之间使用 ::

  • 例子

私有边界 (privacy boundary)

  • 模块不仅可以组织代码,还可以定义私有边界

  • 如果想把 函数 或 struct 等设为私有,可以将它放到某个模块中

  • Rust 中所有的条目 (函数,方法,struct,enum,模块,常量) 默认是私有的

  • 父级模块无法访问子模块中的私有条目

  • 子模块里可以使用所有祖先模块中的条目

pub 关键字

  • 使用 pub 关键字来将某些条目标记为公共的

  • 例子

    • 不使用 pub 关键字,front_of_house模块不能调用 hosting模块,hosting模块也不能调用 add_to_waitlist函数

    • 使用 pub 关键字

super 关键字

  • super: 用来访问父级模块路径中的内容,类似文件系统中的 ..

  • 例子

pub struct

  • pub 放在 struct 前:

    • struct 是公共的

    • struct 的字段默认是私有的

  • struc 的字段需要单独设置 pub 来变成共有

  • 例子

pub enum

  • pub 放在 enum 前:

    • enum 是公共的

    • enum 的变体也都是公共的

  • 例子

posted @ 2022-12-16 22:47  三省吾身~  阅读(648)  评论(0编辑  收藏  举报