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

Привет всем! Не подскажете почему вот это: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=2975069c324b19531980f2129ed7adc7 Не компилится с мисматчем типов?

Что я делаю не так при попытке склеить коллекции в таком контексте?

22 ответов

23 просмотра

Амперсанд воткни

.iter возвращает итератор по &T

Egor-Gusarenko Автор вопроса
Max Силинг
Амперсанд воткни

Тогда ловлю вот это | 36 | quotes_mapped.extend(&iter); | ^^^^^ &std::slice::Iter<'_, Answer<'_>> is not an iterator | Не совсем понял про то куда амперсанд нужно воткнуть

Egor-Gusarenko Автор вопроса
Пух
.iter возвращает итератор по &T

Т.е. extend должен клеить коллекции ссылок, а не коллекции самих переменных?

вот компилирующийся вариант: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8e8713088973d4bd321cc8379284457d но лучше бы конечно целиком переделать

Пух
замени .iter на .into_iter

Тогда интуитер там нужен разве? Экстенд же сам его вызывает?

Egor-Gusarenko Автор вопроса
Egor-Gusarenko Автор вопроса
Денис
вот компилирующийся вариант: https://play.rust-lan...

Ты волшебник! Большое спасибо Не думаю что там получится конкретно переделать, если я не ошибаюсь, там без клонирования не обойдешься

Денис
вот компилирующийся вариант: https://play.rust-lan...

Интересно... Как оно компилируется с map(|x| Answer::Quote(&x))? Там x - это уже ссылка

Egor Gusarenko
Ты волшебник! Большое спасибо Не думаю что там по...

ну, как минимум &String можно заменить на &str, плюс непонятно, как используется quotes_mapped

red75prime
Интересно... Как оно компилируется с map(|x| Answe...

магия коэрсинга =) а так да, можно просто на .map(Answer::Quote) заменить

Egor-Gusarenko Автор вопроса
Денис
ну, как минимум &String можно заменить на &str, пл...

Там &String потому, что я выпилил изначальный код сериализации, а quotes_mapped как раз должен быть коллекцией-объединением из которой получается рандомное значение Хотя возможно про стрингу надо дополнительно покопать, спасибо

red75prime
Интересно... Как оно компилируется с map(|x| Answe...

Внезапно, видимо, дереф коэршн свою роль сыграл как-то.

Egor-Gusarenko Автор вопроса
Egor Gusarenko
Круто, действительно, спасибо

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=2975069c324b19531980f2129ed7adc7 могу еще таокй вариант предложить с поменьше копирования

Traveller Kolsky
Внезапно, видимо, дереф коэршн свою роль сыграл ка...

Да. Deref coercion at function argument coercion site. Практически никогда не использовал для конверсии &&T -> &T так что удивился

red75prime
Да. Deref coercion at function argument coercion s...

Обычно клиппи за такое ругает, вот видимо и уходит до мержа кода

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта