Решение на Code Identifier от Антонио Миндов
Резултати
- 20 точки от тестове
- 0 бонус точки
- 20 точки общо
- 15 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20190123-22631-qp9un7/solution) Finished dev [unoptimized + debuginfo] target(s) in 5.21s Running target/debug/deps/solution-2e785d603b538f71 running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Running target/debug/deps/solution_test-29808948fb50ed3a running 15 tests test solution_test::test_both_static_and_dynamic_strings ... ok test solution_test::test_camelcase_basic ... ok test solution_test::test_cyrillic1 ... ok test solution_test::test_digits1 ... ok test solution_test::test_digits2 ... ok test solution_test::test_digits3 ... ok test solution_test::test_kebabcase_basic ... ok test solution_test::test_multibyte_uppercase ... ok test solution_test::test_normalize_case1 ... ok test solution_test::test_normalize_case2 ... ok test solution_test::test_screaming_snakecase_basic ... ok test solution_test::test_titlecase_basic ... ok test solution_test::test_underscore_basic ... ok test solution_test::test_validity ... ok test solution_test::test_whitespace ... ok test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Doc-tests solution running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
История (2 версии и 3 коментара)
Антонио качи решение на 20.10.2018 10:57 (преди почти 7 години)
Чудесна употреба на chain
, готино се е получил кода :). Случая с None
е малко досаден, понеже проверката за празен низ си я направил горе -- със сигурност ще има поне един символ, така че няма "добър" начин да имплементираш None
клона.
В идеалния случай, няма да се стига до такъв код, но зависи как се структурира -- има валидни начини да се окажеш в ситуация, в която единия клон не би трябвало да може да се стигне. Може да сложиш на мястото на String::new()
макроса unreachable!()
, който ще гръмне, ако някога се удари този клон при програмистка грешка. За предпочитане е това, пред връщането на празен низ без обяснение защо така е станало.
Уф, всъщност не, сори. Изглежда съм претупал малко review-то днес, и не съм видял, че ти си връщаш резултата като output. Нямам идея какво съм си мислел със съвета, напълно разумно е да върнеш String::new()
. Но пък хей, поне те научих за макроса unreachable!()
:).
Мерси за което!
Чудесна употреба на
chain
, готино се е получил кода :). Случая сNone
е малко досаден, понеже проверката за празен низ си я направил горе -- със сигурност ще има поне един символ, така че няма "добър" начин да имплементирашNone
клона.В идеалния случай, няма да се стига до такъв код, но зависи как се структурира -- има валидни начини да се окажеш в ситуация, в която единия клон не би трябвало да може да се стигне. Може да сложиш на мястото на
String::new()
макросаunreachable!()
, който ще гръмне, ако някога се удари този клон при програмистка грешка. За предпочитане е това, пред връщането на празен низ без обяснение защо така е станало.Уф, всъщност не, сори. Изглежда съм претупал малко review-то днес, и не съм видял, че ти си връщаш резултата като output. Нямам идея какво съм си мислел със съвета, напълно разумно е да върнеш
String::new()
. Но пък хей, поне те научих за макросаunreachable!()
:).Мерси за което!