{
data.iter()
.fold(0, |sum, s| {
(sum << 8) ^ V[((sum >> 8) ^ s as u16) as usize]
})
}
интересует избавление именно от as u16 as usize
А почему сразу нельзя as usize? Ты срезаешь биты какие-то?
Да, это CRC16 со специальной таблицей
Тогда разве что & 0хFF вместо каста, а затем сразу в usize
А есть совет что почитать доступного ? как научиться использовать синтаксис такого вида .fold(0, |sum, s| { (sum << 8) ^ V Не только же растбук
ну фолд это просто метод на итераторе тот же reduce в жс остальное просто операторы битшифтинга
А тут есть какой то особый синтаксис?
Обсуждают сегодня