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

Всем привет, такая задачка: есть массив строк, для каждой строки

нужно либо отбросить ее, либо определить в одну из двух групп и распарсить, результаты собрать в два вектора. Пока получился такой код:
let (as, bs): (Vec<_>, Vec<_>) = strings
.iter()
.filter_map(|string|
match string {
«a» => Some(Either::Left(Parser::parse(&attr))),
«b» => Some(Either::Right(Parser::parse(&attr))),
_ => None
}
)
.partition(Either::is_left);
Проблема в том, что я хочу в итоге иметь Result<Vec<Parsed>, ParseError>, а получается Vec<Either<Result<Parsed, ParseError>>>. Знаю что можно собирать итератор из резалтов в резалт от коллекции, но partition требует Default, которого у Result нету. Вторая проблема что Either не разворачивается при сборке. Есть идеи какую комбинацию комбинаторов использовать?

3 ответов

5 просмотров

let (mut as, mut bs) = (vec![], vec![]); for s in &strings { match s { "a" => as.push(...), "b" => bs.push(...), ... } } ?

try_fold, может?

fn main() { let strings = ["a", "b", "a", "b", "c", "c"]; let (a, b) = strings .iter() .fold((Vec::new(), Vec::new()), |(mut a, mut b), x| { match *x { "a" => a.push(x), "b" => b.push(x), _ => {} } (a, b) }); println!("{:?} {:?}", a, b); }

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

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

Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Всем привет. Подскажите, пожалуйста, как вы реализовываете следующий функционал. Допустим есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД...
Евгений
7
Хех, данные на форме всегда будут "из прошлого", т.к. перезаполнять поля формы в процессе редактирования пользователем - так себе идея. Пользователь может открыть форму редакт...
Alexander Somov
7
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Карта сайта