可以在
impl
块中使用Self
:
impl SomeStruct {
pub fn new() -> Self {
SomeStruct { foo: 1, bar: 1, }
}
}
有没有办法引用函数体中的类型?例如:
impl SomeStruct {
pub fn new() -> Self {
Self { foo: 1, bar: 1, }
// ^^^^ not recognized, possibly there is some alternative?
}
}
这不是必需的,只是方便避免在可以推断时重复长结构名称。它也可能对生成的代码有用。
从 Rust 1.16 开始,你的代码编译得很好!Self
关键字现在可以在更多位置使用,包括结构表达式和impl
标头。
相关链接:
- 1.16 更新日志
- 公关稳定功能
- 跟踪问题
- 我之前的答案