这是我想知道的代码:()
mod a {
pub mod b {
pub fn b() {
println!("b");
}
}
pub use self::b::b;
}
use a::b;
fn main() {
b();
b::b();
}
为什么b::b()
工作?模块不应该吗b
和函数b
冲突?这是否意味着a::b
不知何故既是模块又是函数?
模块不应该吗b
和函数b
冲突?
不,因为它们位于不同的命名空间中。他们以同样的方式发生冲突“重新c秩序”和“re英语中的“cord”冲突:它们的拼写和发音相同,但含义不同,您可以根据上下文分辨出哪个是哪个。
你不能调用模块,所以b()
不能谈论模块。函数没有子项,所以b::b
不能谈论一个功能。当您考虑诸如此类的事情时,这一点很重要struct S(i32);
. S
is both类型(结构类型本身)and一个函数(构造函数)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)