Size: a a a

Rust — русскоговорящее сообществo

2020 March 28

p

polunin.ai in Rust — русскоговорящее сообществo
где можно посмотреть методы, доступные для [T] ? не могу найти в доке
источник

p

polunin.ai in Rust — русскоговорящее сообществo
источник

p

polunin.ai in Rust — русскоговорящее сообществo
по идеи vec_u8.set_len(0) никогда не должно вызывать UB?
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
polunin.ai
по идеи vec_u8.set_len(0) никогда не должно вызывать UB?
https://doc.rust-lang.org/std/vec/struct.Vec.html#method.set_len
в доке как раз про это написано
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Есть итератор, который возвращает Option. Как правильно использовать filter_map перед collect, чтобы проверить, что is_some и сразу же unwrap?
источник

MF

Max Frai in Rust — русскоговорящее сообществo
т.е. обычно я делал filter, а потом map
источник

VF

Vlad Frolov in Rust — русскоговорящее сообществo
polunin.ai
по идеи vec_u8.set_len(0) никогда не должно вызывать UB?
Только утечкой памяти грозит, если элементы вектора нетривиального типа
источник

VF

Vlad Frolov in Rust — русскоговорящее сообществo
Max Frai
Есть итератор, который возвращает Option. Как правильно использовать filter_map перед collect, чтобы проверить, что is_some и сразу же unwrap?
Ты хочешь сделать собрать Option<Vec<T>> из итератора Option<T>, я правильно понял? Так и укажи .collect::<Option<Vec<_>>()
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Не, хочу собрать просто Vec<Data>
источник

MF

Max Frai in Rust — русскоговорящее сообществo
есть итератор, который возвращает Option<Data>.
так бы я делал: iterator.filter(|i| i.is_some()).map(|i| i.unwrap()).collect::<Vec<Data>>();
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Хочу понять, как убрать два вызова и заменить это же на filter_map
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Max Frai
есть итератор, который возвращает Option<Data>.
так бы я делал: iterator.filter(|i| i.is_some()).map(|i| i.unwrap()).collect::<Vec<Data>>();
iter.flat_map(|x| x).collect::<Vec<_>>()?
источник

MF

Max Frai in Rust — русскоговорящее сообществo
Casual tears
iter.flat_map(|x| x).collect::<Vec<_>>()?
работает, но непонятно как. что делает flat_map?
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
источник

VF

Vlad Frolov in Rust — русскоговорящее сообществo
Max Frai
работает, но непонятно как. что делает flat_map?
Если None, то пропускает элемент, а если Some, то T возвращается
источник

IB

Ivan Boldyrev in Rust — русскоговорящее сообществo
Max Frai
работает, но непонятно как. что делает flat_map?
Каждый Some - это итератор из нуля или 1 элемента. Flat_map их конкатенирует.
источник

MF

Max Frai in Rust — русскоговорящее сообществo
прикольно, спасибо
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Vlad Frolov
Только утечкой памяти грозит, если элементы вектора нетривиального типа
u8 же
источник

VF

Vlad Frolov in Rust — русскоговорящее сообществo
polunin.ai
u8 же
Я это упустил, тогда да, должно быть норм
источник

O

Ołeksij in Rust — русскоговорящее сообществo
мб кто-то делал это ... есть ли способ возвратить MutexGuard из функции где был вызван mutex.lock()?
источник