Keyword SelfTy[−][src]
Expand description
trait
或 impl
块中的实现类型,或类型定义中的当前类型。
在类型定义内:
struct Node { elem: i32, // `Self` 这里是 `Node`。 next: Option<Box<Self>>, }Run
在 impl
块中:
struct Foo(i32); impl Foo { fn new() -> Self { Self(0) } } assert_eq!(Foo::new().0, Foo(0).0);Run
Self
隐含了泛型参数:
struct Wrap<T> { elem: T, } impl<T> Wrap<T> { fn new(elem: T) -> Self { Self { elem } } }Run
trait Example { fn example() -> Self; } struct Foo(i32); impl Example for Foo { fn example() -> Self { Self(42) } } assert_eq!(Foo::example().0, Foo(42).0);Run