Малина обнови решението на 24.01.2016 18:14 (преди около 9 години)
Отнемам ти няколко точки поради две причини:
- Заради проблеми с окончателните ти решения.
- Заради проблеми с написаните поуки.
По точка едно
- В решението ти на първа задача имаш проблеми с конвенциите - с идентиране на кода, с поставяне на интервали, с именуването на неща.
- Пак там, използвала си неконвенционално
Hash#fetch
, когатоHash#[]
щеше да ти свърши същата работа.fetch
ще хвърли изключение, ако няма такъв ключ, а в тази задача няма такова изискване. - Имаш проблеми с идентацията и във втора, трета и четвърта задача. В края на курса това си е проблем. Ако не успяваш да си настроиш редактора правилно, моля те, питай във форумите за съвет, или ни пиши.
- Във втора, трета и четвърта задача имаш и други проблеми със спазване на конвенциите. Чети ръководството по стил по-внимателно.
Изглежда ми като да не си разгледала достатъчно внимателно и осмислила нашите и решенията на колегите си.
По точка две
В доста от точките не си описала добре какво си научила в дадената точка. Някои от нещата не са верни, или поне не в контекста, който си дала. Ето няколко примера:
По втора задача 1. Clone копира класа на змията заедно със състоянието, в което се намира, и неговите методи. Успява да за запази замръзено състояние на змията. Dup копира променливите, но не копира рекурсивно самия обект. Dup прави плитко копие
clone
също прави плитко копие. Вярно е, че копира и флага frozen?
, но копието пак е плитко.
По трета задача 1. Разбрах как по - добре да си подреждам кода
Точно на трета задача имаш като че ли най-сериозни проблеми с подредбата на кода, поне като идентация.
По четвърта задача 1. Използването на map.with_index.to_a превръща хеш в масив, който е по - лесен и удобен за манипулиране. По- елегантно решение е, а също е нововъведено с Ruby 1.9.3.
Не бих казал, че манипулиране на масив е по-удобно от манипулиране на хеш. Зависи от ситуацията. А за да се обърне хеш до масив е достатъчно да се направи само to_a
.