我是Rust的一个新用户,我正在按照实验书学习它.我读过这一章:https://rust-book.cs.brown.edu/ch04-04-slices.html,其中他们提出了以下代码:
fn first_word(s: &String) -> usize {
let bytes = s.as_bytes();
for (i, &item) in bytes.iter().enumerate() {
if item == b' ' {
return i;
}
}
s.len()
}
我的怀疑是&item
,他们说:
"因为我们从. iter(). enumerate()获得了对元素的引用,所以我们在模式中使用.&"
如果是这样的话,为什么他们用item
像item == b' '
一样.根据我的理解,如果item
是一个引用,那么我需要访问引用所指向的值,比如*item == b' '
.
有人能给我解释一下区别吗?抱歉,如果这是一个琐碎的问题.