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; // 可以!
}
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。