Size: a a a

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

2020 April 04

B

Biose in Rust — русскоговорящее сообществo
источник
2020 April 05

H

Hadji in Rust — русскоговорящее сообществo
Мне кажется, или TRPL в последней редакции стала гораздо более скудной на детали, чем была в самом начале? Раньше про итераторы очень подробно было расписано, если мне память не изменяет. Про структурирование пакетов был очень подробный пример с разными языками. Теперь как-то все сжато стало, куда более поверхностно. Эти детали посчитали ненужными или куда-то перенесли?
источник

NE

Nyc Enas in Rust — русскоговорящее сообществo
Hadji
Мне кажется, или TRPL в последней редакции стала гораздо более скудной на детали, чем была в самом начале? Раньше про итераторы очень подробно было расписано, если мне память не изменяет. Про структурирование пакетов был очень подробный пример с разными языками. Теперь как-то все сжато стало, куда более поверхностно. Эти детали посчитали ненужными или куда-то перенесли?
Да, когда гуглю инфу из книжки кидает часто на старую версию, а в новой инфы нет (последнее вроде гуглил про пути к модулям). Кажись повыкидывали все полезное, оставив какую то болтовню
источник

f

folex in Rust — русскоговорящее сообществo
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=e573b1d8fe9797d1cb7f19129f9c8120

Пытаюсь накидать прототип поделки на расте, и зашел вот в тупик...
источник

∅ч

∅ ч in Rust — русскоговорящее сообществo
Эрик
Да нет, просто заменил Ok(0) на Ok(_) и всё норм. Но вообще не круто, что компилятор не разрешает такое.
бред какой то
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Эрик
non-exhaustive patterns: Ok(_) not covered
ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

Ok(n) if n != 0 => Some(Ok(unsafe { &*(self.line.as_ref() as *const str) })),
Ok(0) => None,
Err(e) => Some(Err(e)),

Вот это рофел.
Сделай
Ok(0) => None,
Ok(n) => Some(unsafe {...}),
источник

SS

Stanislav Sagan in Rust — русскоговорящее сообществo
Эрик
Да нет, просто заменил Ok(0) на Ok(_) и всё норм. Но вообще не круто, что компилятор не разрешает такое.
Ещё как вариант ты мог добавить
Ok(_) => unreachable!()
Но лучше
Ok(0) =>
Ok(val) =>
источник

Э

Эрик in Rust — русскоговорящее сообществo
Stanislav Sagan
Ещё как вариант ты мог добавить
Ok(_) => unreachable!()
Но лучше
Ok(0) =>
Ok(val) =>
unreachable!() код раздувает, потому что паника.
источник

SS

Stanislav Sagan in Rust — русскоговорящее сообществo
Эрик
unreachable!() код раздувает, потому что паника.
Зато явно человеко-читаемо что компилятор сам не догадался
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Эрик
unreachable!() код раздувает, потому что паника.
unchecked_unreachable()
источник

Э

Эрик in Rust — русскоговорящее сообществo
polunin.ai
unchecked_unreachable()
Ансейф.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Эрик
Ансейф.
зато код не раздует
источник

SS

Stanislav Sagan in Rust — русскоговорящее сообществo
Эрик
non-exhaustive patterns: Ok(_) not covered
ensure that all possible cases are being handled, possibly by adding wildcards or more match arms

Ok(n) if n != 0 => Some(Ok(unsafe { &*(self.line.as_ref() as *const str) })),
Ok(0) => None,
Err(e) => Some(Err(e)),

Вот это рофел.
Кстати интересно, а если
Ok(n) if n != 0 =>
Ok(n) if n == 0 =>
Err(_) =>

Догадается ли компилятор что исчерпывающе (сомневаюсь)
источник

Э

Эрик in Rust — русскоговорящее сообществo
Не догадается.
источник

SS

Stanislav Sagan in Rust — русскоговорящее сообществo
Ок
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя не знаю.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Stanislav Sagan
Кстати интересно, а если
Ok(n) if n != 0 =>
Ok(n) if n == 0 =>
Err(_) =>

Догадается ли компилятор что исчерпывающе (сомневаюсь)
нет, компилятор и тут не догадается:
if n == 0 {}
else if n != 0 {}
что исчерпывающе
источник

А

Александр in Rust — русскоговорящее сообществo
Стало интересно разобраться в работе с памятью
loop{
let mut xs=Vec::new() ;
for i in 0..1000000000000000000_u64{
xs.push(i);
}
drop(xs);
}
источник

А

Александр in Rust — русскоговорящее сообществo
Спустя пару секунд работы паникует capacity overflow
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ты запускал на 32-битной системе?
источник