Следуя базовому руководству, я столкнулся с этой функцией:
use std::collections::LinkedList;
// ...
pub fn contains(&self, x: i32, y: i32) -> bool {
let mut ch = 0;
let list: &LinkedList<Block> = &self.body;
for block in list {
if block.x == x && block.y == y {
return true;
}
ch += 1;
if ch == list.len() - 1 {
break;
}
}
return false;
}
Было очевидно, что я могу избавиться от всей части if ch == list.len() - 1
и написать ее так:
pub fn contains(&self, x: i32, y: i32) -> bool {
for block in &self.body {
if block.x == x && block.y == y {
return true;
}
}
return false;
}
Вроде нормально работает, но может есть что-то, что я пропустил?Это просто ненужные накладные расходы, которые автор учебника сделал по ошибке?