Решение на Първа задача от Людмила Савова
Резултати
- 6 точки от тестове
- 0 бонус точки
- 6 точки общо
- 12 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
............ Finished in 0.01223 seconds 12 examples, 0 failures
История (7 версии и 4 коментара)
Людмила обнови решението на 11.10.2014 18:54 (преди около 10 години)
Пуснах си тестовете, но не минават, и не мога да разбера защо, малко помощ?
Здравей :)
Примерните тестове минават за решението ти. Да не би да гледаш Deprecation Warning
-а за :should
? Това не е от твоето решение, а от нашите тестове. Интересува те последният ред - 3 examples, 0 failures
.
Иначе имам малко съвети за самия код:
- Може да махнеш
result =
. За да върнеш резултат от метод е достатъчно просто да оставишcase
-a и резултатът от метода ще е резултатът от съответната функция, която ще се извика в някой отwhen
-овете. - Трябват ли ти функциите
fibonacci
,lucas
иsummed
? Тъй като са едноредови и се използват само на едно място, можеш да сложиш кода им вseries
. - Не харесваме
for
, но понеже не остана време от предната лекция, не сме го казвали. Разгледай метода each. С негоfor index in (3..index)
ще стане(3..index).each do |index|
, или още по-добре3.upto(index) do |index|
- Припокриват се променливите
index
в методаsequence
, което леко усложнява нещата, защото този, който чете кода, трябва да следи коя от двете променливи се използва в даден момент. Ще е по-добре ако измислиш друго (по-описателно) име за параметъра наsequence
, така че да няма повторения в имената. - Вместо
numbers.push(нещо)
може да използвашnumbers << нещо
. Правят едно и също, но по-често се използва второто. - Според Style Guide-a трябва да има празни места около минуса
Решението ти е доста добро, а ако промениш тези неща направо ще стане супер :)
Людмила обнови решението на 11.10.2014 23:08 (преди около 10 години)
Людмила обнови решението на 11.10.2014 23:47 (преди около 10 години)
Людмила обнови решението на 13.10.2014 22:54 (преди около 10 години)
Людмила обнови решението на 13.10.2014 23:00 (преди около 10 години)
Георги, благодаря ти за feedback-a. Наистина пасват, объркала съм се, колкото до кода - мисля, че направих каквото можеше да го опростя и разкрася :)
Изглежда супер :)
Само още нещо дребно - когато не ти трябва параметъра в блок (на each например), можеш просто да не го пишеш. Все едно, че няма параметри. Може да разгледаш и times като алтернатива на each (щом не ти трябва параметъра).