Open ZhangHanDong opened 5 years ago
更详细的内容在 https://github.com/rust-lang/rfcs/blob/master/text/0132-ufcs.md
<...>
叫做Type Segment
当我们写
let p = Point::<i32>::new(2, 2);
的时候,这里的 Point::<i32>::new
实际上是一个 Path
,它在当前上下文中唯一的标识了一个类型 Point<i32>
中的函数 new
而当我们写
let p: Point<i32> = <Point>::new(2, 2);
的时候,左侧的 Point<i32>
实际上是一个类型标注(或者叫类型标记?),表示右侧表达式求值结果的类型应该是一个 Point<i32>
总结:
::<>
,是<...>
针对泛型函数或数据类型调用的一种特例语法,增加了xxx::
前缀Path<....>
也可以在更广泛的需要泛型实例化的地方使用