我看到函数的可见性可以声明pub(self)在模块中.这与没有pub属性的私有函数有什么不同?如果它们没有不同,为什么存在这种语法?
Luk*_*odt 11
RFC 1422pub(restricted)中引入了该语法.它引入了两种指定可见性的新方法:
pub(crate):使项目对整个当前包装箱可见,但不会超出.pub(in path::to::module):使项目对路径指定的模块树可见.pub(self)是语法糖pub(in self),它属于第二类:self只是一个路径像super,::foo,bar::baz等等.这意味着,是的,pub(self)使项目对当前模块树可见.
因此,pub(self)相当于省略了pub(self)声明.这甚至在RFC中说明:
如上所述,定义意味着
pub(self) item就像一个人刚写的一样item.
RFC还提到了为什么支持它:
主要的理由支持这个级别一般性的(这是否则只是"多余的语法")是宏:一个可以编写扩展到宏观
pub($arg)的项目,和宏客户端可以通过self作为$arg获得非酒馆的影响定义.
| 归档时间: |
|
| 查看次数: |
392 次 |
| 最近记录: |