Tha*_*tos 8 grammar language-design rust
在Rust中声明vector类型的变量或哈希映射时,我们会:
let v: Vec<int>
let m: HashMap<int, int>
Run Code Online (Sandbox Code Playgroud)
要实例化,我们需要调用new()
.但是,我们这样做:
Vec::<int>::new()
^^
HashMap::<int, int>::new()
^^
Run Code Online (Sandbox Code Playgroud)
注意突然出现的::
.来自C++,这些都很奇怪.为什么会这样?是否具有引导::
使IDENTIFIER :: < IDENTFIER …
容易解析比IDENTIFIER < IDENTIFIER
,这可能会被解释为一个小于操作?(因此,这只是让语言更容易解析的一个问题吗?但是如果是这样的话,为什么不在类型规范中这样做,以便让两个镜像相互映射?)
(正如Shepmaster所说,经常Vec::new()
就足够了;通常可以推断出这种类型.)
归档时间: |
|
查看次数: |
193 次 |
最近记录: |