首页 文章

什么在Rust中意味着什么?

提问于
浏览
4

Rust中的 :: 语法是什么,如here所示,意思是:

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

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

2 回答

  • 13

    请查看Rust编程语言的Appendix B: Operators and Symbols .


    在这种情况下,双冒号( :: )是路径分隔符 . Paths由板条箱,模块和物品组成 .

    your example item, updated for 1.0的完整路径是:

    std::usize::BITS
    

    这里, std 是包, usize 是模块, BITS 是特定项 - 在这种情况下是常量 .

    如果向上滚动文件,您将看到 use core::usize . use 添加要查看的项目集的路径 . 这就是你可以通过说 usize::BITS 来逃避的方法 . core crate是façade的实现细节,即 std crate,因此您可以在正常代码中将 std 替换为 core .


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

    也可以看看:

  • 2

    哎呀 . 我不是在模块下引用任何东西的正常方式 . 似乎 uint::BITS 是一个常数 .

相关问题