Почему присваивание возвращает старое значение вместо нового? - PullRequest
0 голосов
/ 23 декабря 2018

Почему присвоение возвращает предыдущее значение вместо нового, например: присваивает 0 y вместо 2?Это опасно необычно, поскольку нарушает принцип наименьшего удивления.

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

1 Ответ

0 голосов
/ 23 декабря 2018

Я почти уверен, что это было сделано, чтобы получить согласованные результаты для переменной iso.Присвоение переменной iso не сможет вернуть новое значение, поскольку это создает псевдоним.Но это правда, что менее удивительный дизайн будет включать в себя оператор присваивания, возвращающий None, и некоторую другую операцию (swap?) Для восстановления исходного значения, которое перезаписывается.

...