rust (&v).func()和&v.func()有什么区别?

8ehkhllq  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(128)

(&v)在这段代码中实际上是做什么的?

let v = vec!["hello", "viktor"];
let mut iterator = (&v).into_iter(); // Iter<&str>
let mut iterator = &v.into_iter(); // &IntoIter<&str>

它如何改变.into_iter()返回的内容。为什么结果不同?

ezykj2lf

ezykj2lf1#

这是一个优先级问题,对于&v.into_iter(),编译器理解&(v.into_iter())而不是(&v).into_iter(),就像当你写1+2*3时,编译器理解1+(2*3)而不是(1+2)*3

相关问题