#rust
#Ржавчина
Вопрос:
Как некомментируемый, так и комментируемый код приводят к одному и тому же sum
значению. Я не уверен, что здесь происходит, но я ожидаю, что компилятор выдаст ошибку при неиспользовании разыменования.
fn main() {
let a = vec![0, 1, 2, 3, 4];
let mut sum = 0;
for x in amp;a {
sum = *x;
// sum = x;
}
}
Ответ №1:
Нет, это не случай автоматического разыменования. =
Оператор (он же признак AddAssign
) реализован для целых типов ( T
) с обоими T
и amp;T
операндами.
impl AddAssign<i32> for i32
impl<'_> AddAssign<amp;'_ i32> for i32