什么在Rust中意味着什么?

teh*_*ter 6 syntax rust

什么是::拉斯特语法,看到这里,意思是:

fn chunk(n: uint, idx: uint) -> uint {
    let sh = uint::BITS - (SHIFT * (idx + 1));
    (n >> sh) & MASK
}
Run Code Online (Sandbox Code Playgroud)

在像Haskell这样的语言中,它意味着一个类型提示,但是这里编译器已经有了一个值类型的注释,所以它似乎很可能是类型转换.

She*_*ter 17

请参阅附录B:运营商和符号锈病编程语言.


在这种情况下,双冒号(::)是路径分隔符.路径板条箱,模块项目组成.

更新为1.0的示例项的完整路径是:

std::usize::BITS
Run Code Online (Sandbox Code Playgroud)

这里std是箱子,usize是一个模块,BITS是特定的项目 - 在这种情况下是一个常数.

如果向上滚动文件,你会看到use core::usize.use添加要查看的项目集的路径.这就是你可以通过说出来的方式usize::BITS.该core箱子是作为外墙的实现细节std箱子,所以你可以替换stdcore正常的代码.


::也可以用作指定泛型类型的方法,否则无法推断它们; 这被称为涡轮机.

也可以看看: