E0070

未匹配的标注

赋值运算符被用于非位置表达式。

错误代码示例:

struct SomeStruct {
    x: i32,
    y: i32,
}

const SOME_CONST: i32 = 12;

fn some_other_func() {}

fn some_function() {
    SOME_CONST = 14; // error: 常量值不能更改
    1 = 3; // error: 1 isn't a valid place!(1不是有效的位置表达式)
    some_other_func() = 4; // error: 不能赋值给函数
    SomeStruct::x = 12; // error: SomeStruct 是一个结构体名,但是被像变量那样使用了!
}

赋值运算符的左侧必须是位置表达式。位置表达式表示内存位置,可以是变量(有可选名称空间),解引用,索引表达式或字段引用。

更多详细信息可以在 Reference 中的表达式部分找到。

现在让我们给出可以正常工作的例子:

struct SomeStruct {
    x: i32,
    y: i32,
}
let mut s = SomeStruct { x: 0, y: 0 };

s.x = 3; // 可以!

// ...

fn some_func(x: &mut i32) {
    *x = 12; // 可以!
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~