4
fn t(r: &[u8]) {
match r {
_ if r.iter().any(|&x| x == b';') => {}
_ => {}
}
}
給我的錯誤:
error[E0301]: cannot mutably borrow in a pattern guard
|
10 | _ if r.iter().any(|&x| x == b';') => {}
| ^^^^^^^^ borrowed mutably in pattern guard
我明白,我不能在匹配模式性情不定地借錢,但爲什麼編譯器認爲r.iter()
借用性情不定地?可變的借款有一個單獨的方法iter_mut
。
我怎樣才能檢查&[u8]
包含b';'
而不引入單獨的功能?
是否有意義的迭代器::任何通過可變引用採取自我? – user12341234
@ user12341234是的,它的確如此。你必須能夠改變迭代器以調用next,它會更新迭代器的內部狀態,以便每次調用都可以返回不同的內容。 – Shepmaster