Решение на Code Identifier от Димитър Николов
Обратно към всички решения
Към профила на Димитър Николов
Резултати
- 19 точки от тестове
- 0 бонус точки
- 19 точки общо
- 14 успешни тест(а)
- 1 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20190123-22631-1w1ff0b/solution)
Finished dev [unoptimized + debuginfo] target(s) in 5.02s
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 ... FAILED
test solution_test::test_whitespace ... ok
failures:
---- solution_test::test_validity stdout ----
thread 'solution_test::test_validity' panicked at 'assertion failed: CodeIdentifier::new("some-var").is_none()', tests/solution_test.rs:9:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
failures:
solution_test::test_validity
test result: FAILED. 14 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
error: test failed, to rerun pass '--test solution_test'
История (1 версия и 8 коментара)
Димитър качи първо решение на 25.10.2018 02:31 (преди почти 5 години)
Оригинално ми се искаше да е &str, но ми даваше грешки около Vec<Node<'a>> и реших, че няма да се мъча много.
Мда, проблем с lifetimes. Ще говорим за тях скоро.
Има built-in метод
trim()
дефиниран върхуstr
и върхуString
, който щеше да ти свърши работа.Тук вместо да правиш безкраен цикъл, който да break-неш при
None
, вероятно можеше да направишfor c in string_iterator
. Или поне не виждам причина да не се получи.Същото се отнася и за по-долу.
Можеше да го напишеш по-кратко така:
Същото се отнася и за по-долу.
Това би гръмнало за празен низ. Добра идея е да не разчиташ, че
next()
винаги ще ти дадеSome
. Може би ако си проверил някъде по-нагоре, че дължината е> 0
, но пак е малко рисковано, че можеш да извикаш функцията при невалидни условия.С pattern-matching щеше да стане по-просто: