在Rust中,双冒号是什么意思?

pexxcrt2  于 2022-11-12  发布在  其他
关注(0)|答案(3)|浏览(342)

我是Rust编程语言的新手,在学习this lesson的时候,我不太理解下面的两行。

let mut guess = String::new();

并且,

io::stdin()

在这两种情况下,双冒号有什么用?

2ledvvac

2ledvvac1#

::的行为类似于命名空间访问器。您可以像std::io::stdin()那样在模块中导航或指定位置,或者像String::new()那样调用对象的方法。它甚至可以混合使用,因为对象可能在模块本身中,因此例如,String新方法的完整路径将是std::string::String::new
有关详细信息,请参阅此处。

zhte4eai

zhte4eai2#

::名称是一个双冒号,根据https://en.wikipedia.org/wiki/Table_of_mathematical_symbols_by_introduction_date,我是否正确
::被称为proportion sign
但我更喜欢双冒号。
你可以用它来导入模块和carate在生 rust 。

use std::collections::HashMap // add this to anywhere before using HashMap
fn main() {
    let solar_distance = HashMap::from([
        ("Mercury", 0.4),
        ("Venus", 0.7),
        ("Earth", 1.0),
        ("Mars", 1.5),
    ]);
}
wfsdck30

wfsdck303#

符号:根据其使用位置和方式,可以表示多种含义。请参考Table B-3: Path-Related Syntax here。但是,我们大多数人使用它的最常见用例是命名空间路径。示例:

use std::io;

这里我们尝试使用标准库中的io模块。

相关问题