Rust中的 :: 语法是什么,如here所示,意思是:
::
fn chunk(n: uint, idx: uint) -> uint { let sh = uint::BITS - (SHIFT * (idx + 1)); (n >> sh) & MASK }
在像Haskell这样的语言中,它意味着一个类型提示,但是这里编译器已经有了这个值类型的注释,所以它似乎很可能是类型转换 .
请查看Rust编程语言的Appendix B: Operators and Symbols .
在这种情况下,双冒号( :: )是路径分隔符 . Paths由板条箱,模块和物品组成 .
your example item, updated for 1.0的完整路径是:
std::usize::BITS
这里, std 是包, usize 是模块, BITS 是特定项 - 在这种情况下是常量 .
std
usize
BITS
如果向上滚动文件,您将看到 use core::usize . use 添加要查看的项目集的路径 . 这就是你可以通过说 usize::BITS 来逃避的方法 . core crate是façade的实现细节,即 std crate,因此您可以在正常代码中将 std 替换为 core .
use core::usize
use
usize::BITS
core
:: 也可用作指定泛型类型的方法,否则无法推断它们;这被称为turbofish .
也可以看看:
instance.method::<SomeThing>()
哎呀 . 我不是在模块下引用任何东西的正常方式 . 似乎 uint::BITS 是一个常数 .
uint::BITS
2 回答
请查看Rust编程语言的Appendix B: Operators and Symbols .
在这种情况下,双冒号(
::
)是路径分隔符 . Paths由板条箱,模块和物品组成 .your example item, updated for 1.0的完整路径是:
这里,
std
是包,usize
是模块,BITS
是特定项 - 在这种情况下是常量 .如果向上滚动文件,您将看到
use core::usize
.use
添加要查看的项目集的路径 . 这就是你可以通过说usize::BITS
来逃避的方法 .core
crate是façade的实现细节,即std
crate,因此您可以在正常代码中将std
替换为core
.::
也可用作指定泛型类型的方法,否则无法推断它们;这被称为turbofish .也可以看看:
instance.method::<SomeThing>()
?哎呀 . 我不是在模块下引用任何东西的正常方式 . 似乎
uint::BITS
是一个常数 .