Решение на 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!():).Мерси за което!