|
|
|
@ -4,7 +4,7 @@
|
|
|
|
|
> <br>
|
|
|
|
|
> commit cc6a1ef2614aa94003566027b285b249ccf961fa
|
|
|
|
|
|
|
|
|
|
来看一下Rust如何模块树中找到一个项的位置,我们使用路径的方式,就像在文件系统使用路径一样。如果我们想要调用一个函数,我们需要知道它的路径。
|
|
|
|
|
来看一下Rust如何在模块树中找到一个项的位置,我们使用路径的方式,就像在文件系统使用路径一样。如果我们想要调用一个函数,我们需要知道它的路径。
|
|
|
|
|
|
|
|
|
|
路径有两种形式:
|
|
|
|
|
|
|
|
|
@ -69,7 +69,7 @@ error[E0603]: module `hosting` is private
|
|
|
|
|
|
|
|
|
|
Rust中默认所有项(函数、方法、结构体、枚举、模块和常量)都是私有的。父模块中的项不能使用子模块中的私有项,但是子模块中的项可以使用他们父模块中的项。这是因为子模块封装并隐藏了他们的实现详情,但是子模块可以看到他们定义的上下文。继续拿餐馆作比喻,把私有性规则想象成餐馆的后台办公室:餐馆内的事务对餐厅顾客来说是不可知的,但办公室经理可以洞悉其经营的餐厅并在其中做任何事情。
|
|
|
|
|
|
|
|
|
|
Rust 选择以这种方式来实现模块系统功能,因此默认隐藏内部实现细节。这样一来,你您就知道可以更改内部代码的哪些部分而不会破坏外部代码。你还可以通过使用`pub`关键字来创建公共项,使子模块的内部部分暴露给上级模块。
|
|
|
|
|
Rust 选择以这种方式来实现模块系统功能,因此默认隐藏内部实现细节。这样一来,你就知道可以更改内部代码的哪些部分而不会破坏外部代码。你还可以通过使用`pub`关键字来创建公共项,使子模块的内部部分暴露给上级模块。
|
|
|
|
|
|
|
|
|
|
### 使用`pub`关键字暴露路径
|
|
|
|
|
|
|
|
|
|