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 的变体也都是公共的
-
-
例子