ㅤ
Vec<Result<T, E> -> Result<Vec<T>, E>
А если один из элементов вектора это ошибка?
Berkus
см ниже
ниже написано "в общем случае - никак"
Αλεχ
Это реализовано
Αλεχ
у меня даже код рабочий был
Αλεχ
именно в таком
Cat
тогда ошибка
на каком этапе?
Αλεχ
https://stackoverflow.com/a/36371890/2559709
Αλεχ
даже тут это написано
Berkus
больше двух лет назад, на версии раста 1.0?
Cat
там такого не написано
Cat
либо я в конец слепой
Αλεχ
If you want all results or a single error, collect into a Result<X<T>>:
Cat
If you want all results or a single error, collect into a Result<X<T>>:
ну так у него там не приведена правая часть
Cat
это вообще не значит, что оно работает
Cat
он просто совет даёт
Berkus
он советует flat_map() :)
Αλεχ
https://play.rust-lang.org/?gist=7831dc0f39cc18c66db17e5cdfd2036b&version=stable&mode=debug
Αλεχ
а что на это скажете?
Cat
скажем, что into_iter
Αλεχ
и?
Αλεχ
я и спросил
Αλεχ
в чем ошибка
Αλεχ
iter вместо into_iter
Αλεχ
это как раз такая мелкая ошибка
Cat
согласен
Cat
это типо quiz был?
Αλεχ
типа я помнил, что так можно
Αλεχ
но забыл точный код
Αλεχ
@napsy https://play.rust-lang.org/?gist=f2a898289b8102428ebd88d46dc004f6&version=stable&mode=debug шарпик так не умеет
Cat
а в шарпике разве нет Object?
Αλεχ
в шарпике нет FromIter
Αλεχ
а еще шарпик не умеет опускать выведенные типа
Αλεχ
fn foo<A,B,C,D>(a: A, b: B, c: C)
Αλεχ
в расте можно вызвать как foo::<_,_,_,i32>(1,2,3)
Αλεχ
в шарпе нельзя
Αλεχ
и это часто бесит
🐁 Arutrancetro
в шарпе по другому
Cat
в шарпике нет FromIter
так можно всё херачить под обжект, а потом в динамике сравнить просто и всё, не?
Αλεχ
так-то все языки тьюринг-полные
Cat
так можно написать
🐁 Arutrancetro
на мой взгляд в шарпе можно делать много чего, чего в расте нельзя)
Αλεχ
только рефлексия
🐁 Arutrancetro
но в расте меньше можно делать того, что в шарпе нельзя
Cat
только рефлексия
ну, если через object это рефлексия, то типикал подход
Αλεχ
там и без object можно сделать
Cat
хз, в джаве типикал
Αλεχ
точнее не получится вообще ибо нет АДТ
Αλεχ
ты не можешь вернуть одно ИЛИ другое
Cat
можно вернуть object
Αλεχ
так никто не делает
Αλεχ
если я вижу object в коде то как правило это говнокод
Αλεχ
даже логирующее API дженериками строится
Cat
ну хз, в джаве так направо и налево, хоть и есть декларация типов, но VM ничего о них не знает
Αλεχ
Αλεχ
я как-то кодогенерацией занимался в ранатйме
Αλεχ
на основе этого
🐁 Arutrancetro
string[] arr = Enumerate.Range(0, 100).Select(x => $"Result: {x}").ToArray(); как такое же в расте сделать одной строчкой?
Αλεχ
let arr = (0..100).map(|x| format!("Result: {}", x)).collect::Vec<_>
🐁 Arutrancetro
ну в шарпике более симпотично выглядит)
Αλεχ
с чего бы?
🐁 Arutrancetro
без всяких вскл знаков и ::
Αλεχ
скорее более привычно
🐁 Arutrancetro
и без <>
Αλεχ
:: нужен потому что так сделан парсер
🐁 Arutrancetro
ну $ можно убрать
Αλεχ
и без <>
Потому что в шарпе нет метода To<>
Cat
ну $ можно убрать
а Enumerate.range()?
Αλεχ
есть ToArray, ToList и все