:: 在 Rust 中是什么意思?
What does :: mean in Rust?
如 here 所示,Rust 中的 ::
语法是什么意思:
fn chunk(n: uint, idx: uint) -> uint {
let sh = uint::BITS - (SHIFT * (idx + 1));
(n >> sh) & MASK
}
在像Haskell这样的语言中,它意味着类型提示,但这里的编译器已经有了该值类型的注释,所以看起来很可能是类型转换。
糟糕。我没有看得很清楚。在这种情况下,它只是引用模块下任何内容的正常方式。 uint::BITS
似乎是一个常数。
请复习 Appendix B: Operators and Symbols 的 Rust 编程语言。
在这种情况下,双冒号 (::
) 是路径分隔符。 Paths 由 crates、modules 和 items.
组成
your example item, updated for 1.0 的完整路径是:
std::usize::BITS
这里,std
是箱子,usize
是模块,BITS
是具体的项目——在本例中是常量。
如果向上滚动文件,您会看到 use core::usize
。 use
将路径添加到要查看的项目集。这就是您只需说 usize::BITS
就可以逃脱的方法。 core
crate 是 std
crate 外观的实现细节,因此您可以在普通代码中用 std
替换 core
。
::
也可以用作在无法以其他方式推断泛型类型时指定泛型类型的方法;这叫做 turbofish.
另请参阅:
如 here 所示,Rust 中的 ::
语法是什么意思:
fn chunk(n: uint, idx: uint) -> uint {
let sh = uint::BITS - (SHIFT * (idx + 1));
(n >> sh) & MASK
}
在像Haskell这样的语言中,它意味着类型提示,但这里的编译器已经有了该值类型的注释,所以看起来很可能是类型转换。
糟糕。我没有看得很清楚。在这种情况下,它只是引用模块下任何内容的正常方式。 uint::BITS
似乎是一个常数。
请复习 Appendix B: Operators and Symbols 的 Rust 编程语言。
在这种情况下,双冒号 (::
) 是路径分隔符。 Paths 由 crates、modules 和 items.
your example item, updated for 1.0 的完整路径是:
std::usize::BITS
这里,std
是箱子,usize
是模块,BITS
是具体的项目——在本例中是常量。
如果向上滚动文件,您会看到 use core::usize
。 use
将路径添加到要查看的项目集。这就是您只需说 usize::BITS
就可以逃脱的方法。 core
crate 是 std
crate 外观的实现细节,因此您可以在普通代码中用 std
替换 core
。
::
也可以用作在无法以其他方式推断泛型类型时指定泛型类型的方法;这叫做 turbofish.
另请参阅: