let Some(current_reference) = current {
// Some code
current = current_reference.next.as_mut();
}
так зачем делать while list != None { if let Some(inner) = list {, если можно сразу сделать while let Some(inner) = list?
Потому что 10 раз переписывал, уже влом было ). Там можно вообще без деки обойтись и просто делать обход по листу.
ну это прям антипаттерн из десяти) можно сделать код короче, проще, и убрать панику на уровне типов, а не на уровне "да там точно всё ок"))
К слову, как-то матч можно красивее переписать ?
Не, ну так-то, литкод дал мне сабмишн, так что ок 😅
кажется, что код в ветках (Some(num1), None) => { и (None, Some(num2)) => { идентичен с точностью до num1/num2, так что можно их объединить с помощью (Some(num), None) | (None, Some(num)) => {
Хм, слушай. А как это должно выглядить в готовом виде ?
Ой, вот литкод отвратительно подходит для того, чтобы учиться писать идиоматичный код, особенно по части Rust
нзч, ещё можно не делать проверку while stack_1.len() != 0 || stack_2.len() != 0 {, а сделать loop {, а в матче добавить ветку (None, None) => break,
Более-менее подходит codewars
мне конечно чисто субъективно codewars больше нравится, но я не очень понимаю, как он может помочь научиться писать идиоматичный код.. по крайней мере те популярные решения, что я там видел, зачастую бывали очень далеки от идиоматичных %)
Но там откровенную херню всё же не лайкают. Да и составители задач обычно всё же идиоматичные сигнатуры дают
ну, если сравнивать — то да, сравнение в пользу кодварс однозначно про идиоматичные сигнатуры тоже согласен ок, продано, спасибо =)
Тоже красиво. Спасибо !
Да мне хватает :). На работе дефолтной растовой кодбазы итак полно, а всякие деревья-графы-листы на литкоде нормально прокачиваются.
exercism.io норм?
Отличный
Обсуждают сегодня