Решение на Text Info от Стефан Георгиев
Към профила на Стефан Георгиев
Резултати
- 15 точки от тестове
- 0 бонус точки
- 15 точки общо
- 15 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (file:///tmp/d20171026-5817-1j2bpdv/solution)
invalid expression
!1251 = !DIExpression(6, 34, 0, 6)
invalid expression
!1254 = !DIExpression(6, 34, 8, 6)
invalid expression
!1210 = !DIExpression(6, 34, 0, 6)
invalid expression
!1213 = !DIExpression(6, 34, 8, 6)
Finished dev [unoptimized + debuginfo] target(s) in 3.26 secs
Running target/debug/deps/solution-f5dd4e94aa395cae
running 1 test
test tests::it_works ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-c3b431457e2a7a27
running 15 tests
test solution_test::test_alpha_count ... ok
test solution_test::test_alpha_count_2 ... ok
test solution_test::test_char_count ... ok
test solution_test::test_cyrillic_letter_count ... ok
test solution_test::test_emotions ... ok
test solution_test::test_emotions_repeated_punctuation ... ok
test solution_test::test_empty_string ... ok
test solution_test::test_latin_letter_count ... ok
test solution_test::test_sentence_count ... ok
test solution_test::test_sentence_count_2 ... ok
test solution_test::test_triple_dots_count ... ok
test solution_test::test_unicode_char_count ... ok
test solution_test::test_word_count ... ok
test solution_test::test_word_count_2 ... ok
test solution_test::test_word_count_3 ... 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
История (6 версии и 1 коментар)
Стефан качи решение на 25.10.2017 14:40 (преди около 8 години)
Стефан качи решение на 25.10.2017 15:18 (преди около 8 години)
Стефан качи решение на 25.10.2017 15:49 (преди около 8 години)
Стефан качи решение на 25.10.2017 15:52 (преди около 8 години)
Стефан качи решение на 25.10.2017 15:58 (преди около 8 години)
Изключително мега важно е да знаеш това (трябваше да пиша по-рано): Този код не трябваше да мине. Забравих да пиша тест, който да го счупи, но дори нямаше да се компилира, ако бях.
Подозирам, че проблема идва от неразбиране (което се надявам да поправим скоро на лекции). Този 'static означава нещо доста особено. Значи, че този конкретен тип е само и единствено статични низове, набити в кода. Ако бяхме извикали кода по този начин, щеше да има компилационна грешка:
s = String::new("something");
t = TextInfo::new(&s[..]);
Този String::new взема статичния низ, който сме подали, "something" (който наистина е &'static str, и го копира в heap-а, и когато го референцираме с &s[..], получаваме &str.
Типа, който ти указахме и в условието, е &str, а не &'static str. Ако подадеш динамично-алокиран &str на функция, която очаква &'static str, това ще ти гръмне с компилационна грешка.
Ако не си разбрал обяснението, питай на лекции, ще ги го обясня по различен начин. В следващи домашни, ще внимавам да не минават такива неща, но ще гледам чак такива gotchas да ги вкарам още в базовия тест.

Изключително мега важно е да знаеш това (трябваше да пиша по-рано): Този код не трябваше да мине. Забравих да пиша тест, който да го счупи, но дори нямаше да се компилира, ако бях.
Подозирам, че проблема идва от неразбиране (което се надявам да поправим скоро на лекции). Този
'staticозначава нещо доста особено. Значи, че този конкретен тип е само и единствено статични низове, набити в кода. Ако бяхме извикали кода по този начин, щеше да има компилационна грешка:Този
String::newвзема статичния низ, който сме подали, "something" (който наистина е&'static str, и го копира в heap-а, и когато го референцираме с&s[..], получаваме&str.Типа, който ти указахме и в условието, е
&str, а не&'static str. Ако подадеш динамично-алокиран&strна функция, която очаква&'static str, това ще ти гръмне с компилационна грешка.Ако не си разбрал обяснението, питай на лекции, ще ги го обясня по различен начин. В следващи домашни, ще внимавам да не минават такива неща, но ще гледам чак такива gotchas да ги вкарам още в базовия тест.