可以避免在'impl'函数体中重复结构名称吗?


可以在

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 更新日志
  • 公关稳定功能
  • 跟踪问题
  • 我之前的答案

最新更新