172 похожих чатов

Доброй ночи, помогите разобраться с темой. Есть вот такой код fn

move(&mut self) {
let iter = self.board.create_sequence_to_start();
self.handle_item(iter);//тут мутирует self
}

fn create_sequence_to_start(&self) -> impl Iterator<Item=(usize, bool)> + '_ {
(0..self.cells.len()).map(|index| (index, (index + 1) % self.size == 0))
}

как я понимаю + '_ для того, чтоб компилятор знал сколько должен жить созданный map итератор т.к. лямбда захватывает self.size и непонятно сколько эта лямбда просуществует. Как вообще лямбда може захватить self без move?

4 ответов

21 просмотр

Именно без move лямбда его и захватывает

Джакс- Автор вопроса
Victor
Именно без move лямбда его и захватывает

Я думал без в нутри лямбды self будут не виден и попросту не скомпилируется. ``` (0..self.cells.len()).rev().map(move |index| (index, (index % self.size == 0))) ``` при таком раскладе компилятор тоже требует + '_

'_ в данном случае значит "такой же лайфтайм как у &self"

Джакс- Автор вопроса
Mikola Summer Duck
'_ в данном случае значит "такой же лайфтайм как у...

Это я понимаю вопрос скорее в том, почему лямбда self захватывает

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта