Решение на Дигитален корен от Александра Йовкова
Обратно към всички решения
Към профила на Александра Йовкова
Резултати
- 20 точки от тестове
- 0 бонус точки
- 20 точки общо
- 6 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20200111-2173579-mcti97/solution)
warning: value assigned to `x` is never read
--> src/lib.rs:16:13
|
16 | let mut x: Option<u32> = None;
| ^
|
= note: `#[warn(unused_assignments)]` on by default
= help: maybe it is overwritten before being read?
warning: value assigned to `result` is never read
--> src/lib.rs:30:13
|
30 | let mut result: Option<u32> = None;
| ^^^^^^
|
= help: maybe it is overwritten before being read?
warning: value assigned to `x` is never read
--> src/lib.rs:16:13
|
16 | let mut x: Option<u32> = None;
| ^
|
= note: `#[warn(unused_assignments)]` on by default
= help: maybe it is overwritten before being read?
warning: value assigned to `result` is never read
--> src/lib.rs:30:13
|
30 | let mut result: Option<u32> = None;
| ^^^^^^
|
= help: maybe it is overwritten before being read?
Finished test [unoptimized + debuginfo] target(s) in 3.47s
Running target/debug/deps/solution-a73e64ec87929bd0
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-38971695424b36d5
running 6 tests
test solution_test::test_binary ... ok
test solution_test::test_decimal_basic ... ok
test solution_test::test_hex_basic ... ok
test solution_test::test_invalid ... ok
test solution_test::test_octal_basic ... ok
test solution_test::test_zeroes ... ok
test result: ok. 6 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
История (1 версия и 5 коментара)
Александра качи първо решение на 03.11.2019 16:57 (преди почти 6 години)
Не ти трябва временната стойност
x
. Даже Rust би трябвало да ти даде warning, че началната стойност наx
никога не се чете. Кода може да е такъв:Пак имаш временна променлива, която не е нужна. Функцията може да завършва на:
Тъй като if-клаузата е израз, спокойно последния израз на функцията бива върнат, а той ще е един от ръкавите на
if
-а.Вместо ръчно да сравняваш с
None
(има метод.is_none()
впрочем), можеш директно да pattern-match-неш:Като допълнителен бонус, променливата
hex_digit
наистина е цифра, а неOption<цифра>
което е малко по-интуитивно свързано с името.Обстойно :). Но не ти трябва --
1
и0x_1_u32
са едно и също нещо, също както15
и0x_0_u32
. Синтаксиса с0x
не създава стойност от различен тип, а пак си прави стойност от типu32
, просто литерала е различен.0xf
ти е числото 15.Ефективно, тук правиш
let root = sum
, освен че ако е 0 или над 15 става 0, но това са случаи, до които не би трябвало да може да се стигне.