Rust 哪个可见性参数给出结构和函数,哪些应该在子模块中可见?
TL;DR我发现,如果我想在(子)^+-模块中使用函数的结构,我不需要给它任何可见性。关于子模块的级别,只需编写Rust 哪个可见性参数给出结构和函数,哪些应该在子模块中可见?,rust,visibility,Rust,Visibility,TL;DR我发现,如果我想在(子)^+-模块中使用函数的结构,我不需要给它任何可见性。关于子模块的级别,只需编写use super::{}与super::重复次数作为子模块的级别 编辑:我添加了一个小代码示例来更好地演示我的问题 我偶尔会遇到架构问题:“这个文件已经太大了吗?”因此,让我介绍一下初始代码 mod模块{ 结构参数{} 结构Foo{} fn test_foo(foo:foo,param:Parameter)->bool{ 未执行!() } } 为了解决过大代码文件的问题,我将文件重
use super::{}代码>与super::
重复次数作为子模块的级别
编辑:我添加了一个小代码示例来更好地演示我的问题
我偶尔会遇到架构问题:“这个文件已经太大了吗?”因此,让我介绍一下初始代码
mod模块{
结构参数{}
结构Foo{}
fn test_foo(foo:foo,param:Parameter)->bool{
未执行!()
}
}
为了解决过大代码文件的问题,我将文件重新构造为一个模块,并将每个自包含的代码集转储到一个子模块中。下面是一个例子:
crate
└── module
└── submoduleA
crate
└── module
└── submoduleA
└── subsubmoduleA
在任何子模块中调整代码都相当容易。为了使mod
模块的代码在mod
子模块中可见,我只需注释我编写的相应代码片段使用super:{}代码>位于子模块文件的开头。代码可能如下所示:
mod模块{
结构参数{}
模子模{
使用super::参数;
结构Foo{}
fn test_foo(foo:foo,param:Parameter)->bool{
未执行!()
}
}
}
现在它变辣了。如果我必须重新构造一个子模块怎么办?下面是一个例子:
crate
└── module
└── submoduleA
crate
└── module
└── submoduleA
└── subsubmoduleA
如果我希望模块的代码在子模块级别可见,我应该为模块文件中的代码添加哪种可见性类型?如何在我的子模块中引入这段代码
以下代码不起作用:
mod模块{
结构参数{}
模子模{
模次亚模{
使用super::super::参数;
结构Foo{}
fn test_foo(foo:foo,param:Parameter)->bool{
未执行!()
}
}
}
}
我很困惑。您不需要任何pub
说明符来使模块中的项对其自己的子模块可见;情况总是这样。您能更具体地说明定义的是哪个模块,哪个是用户吗?谢谢您的回答,很抱歉打扰您。现在我也明白了你的意思,解决了我的困境。很高兴我能帮忙,即使是偶然。