Деян обнови решението на 22.10.2014 16:20 (преди около 10 години)
Имам проблем. Това е моето решение, за жалост не работи, тъй като се опитвам да го кача и ми излиза следното съобщение "Намерихме няколко грешки. Погледнете и пробвайте пак: Spaces around operators * no spaces around & on line 27". Промених го само, за да го кача ( знам, че не работи ).@set.select & filter.get_filter = @set.select(&filter.get_filter) в оригиналното решение. Благодаря предварително :)
Здрасти,
Решението ти ми харесва. Имам няколко коментара, които можеш да погледнеш:
- Не са ти необходими getter и setter за
set
. Махни го тозиattr_accessor
. - Не оставяй празен ред преди първия и след последния метод в клас.
- Провери как работи
Array#each
, когато не му подадем блок. ОчаквамеNumberSet#each
да работи по същия начин. - Помисли дали са ти необходими
lambda
-ите вAbstractFilter#&
иAbstractFilter#|
. Учихме и други интересни работи за анонимните функции в Ruby. - Защо ти е
AbstractFilter
? Защо не оставишTypeFilter
иSignFilter
да наследяватFilter
? - Не ми харесва
get_filter
метода. Защо трябва да показва анонимната функция на всички? Какво мислиш за това да го замениш с метод, който приема число и проверява дали то удовлетворява филтъра? Така ще скриеш анонимната функция зад ясно дефиниран интерфейс. Според мен кодът ти ще стане по-четим. Особено, ако уцелиш правилното име за такъв метод. :)
Грешката, която получаваше е проблем от наша страна. Работим по решаването. Ако погледнеш последната точка горе и направиш нещо подобно не би трябвало да имаш проблем с предаването на решението.
Успех! :)