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

Кстати у меня есть неоригинальный вопрос — насколько нормально использовать

явное указание типов через ::<...> вместо присваивания переменным?
Есть у меня вот такой вот кусочек например, тут по-другому вроде как никак:
fn get_paths<'a, Patterns>(patterns: Patterns) -> Result<impl Iterator<Item = PathBuf>>
where
Patterns: IntoIterator,
Patterns::Item: AsRef<str> + 'a,
{
Ok(patterns
.into_iter()
.map(|p| glob::glob(p.as_ref()))
.collect::<Result<Vec<_>, _>>()?
.into_iter()
.flatten()
.collect::<Result<Vec<_>, _>>()?
.into_iter())
}

Но "в книжках" почти везде пишут что мол указывайте тип в let, а синтаксис с ::<...> как-то обходят стороной (хотя для collect это вообще незаменимая штука кмк).

5 ответов

8 просмотров

если оно работает то норм. Потому что дебажить такие цепочки не очень

Почему бы не сделать что-то типа patterns .into_iter() .try_fold(vec![], |mut ret, p| { for p in p.flatten() { ret.push(p?); } Ok(ret) })

Ἀρίσταρχ-Zagorodnikov Автор вопроса
Traveller Kolsky
Почему бы не сделать что-то типа patterns .int...

Вариант с for читается проще, а красота цепочки уже испорчена.

фу какой некрасивый fold

Ramtaic Natcher
фу какой некрасивый fold

как сделать красивее?

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

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

Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
40
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
44
Вопрос, вот задание https://stepik.org/lesson/7602/step/9?unit=1473 вот код и ошибка, удивляет, что требуется еще и Semigroup так и должно быть, или я опять делаю ошибки ? htt...
Fedor
14
Вообще, меня бы даже такой вариант, наверное устроил бы: try tag.Read(0); finally end; Но этот AV не ловится и программа завершается Exception EAccessViolation in module C...
notme
12
Проблема с Windows scripting control Множество объектов получают iDispatch обертки и отдаются в скрипты. При этом скрипты могут эти обертки держать живыми очень долго, наприм...
Arioch The
16
Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Да и вообще... как VBS/VBA производит вызов методов тогда? Как мне на Delphi сделать точно также, блин.... VBS/VBA не падают, а возвращают нормальный СОМ-объект, где можно про...
notme
10
Всем доброго времени суток! В BDE в своё время был файл BDEINST.dll который, как я понимаю, содержал всё что нужно для инсталляции BDE. Если посмотреть на дату его создания то...
Mikhail Tchervonenko
2
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
9
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Карта сайта