3

为什么赋值返回以前的值而不是新值,例如:分配0y而不是2?这是危险的不寻常,因为它违反了最小意外原则。

var x: I32 = 0
let y = (x = 2)
4

1 回答 1

2

我很确定这样做是为了获得一致的iso变量结果。分配给iso变量将无法返回新值,因为它创建了一个别名。但确实,一个不那么令人惊讶的设计将涉及一个赋值运算符返回None和一些其他操作(交换?)以恢复被覆盖的原始值。

于 2018-12-23T12:20:05.063 回答