Петър обнови решението на 26.10.2012 22:32 (преди около 12 години)
Предавам с цел да въпрос. :) Обосновано ли е в случая използването на eval? Четох из нета, че eval се ползва само ако няма друг вариант, следователно май не. Но все пак да попитам. :)
Чист eval е зло :) Ruby предоставя няколко други такива, които се ползват - instance_eval
и {class|module}_eval
, но за тях по-нататък.
Като гледам кода, това което правиш с eval
може да го направиш и с блокове. След като ги запазиш може да ги извикаш с block.call
, block.()
или block[]
. Последното не го ползвай :)
Отделно може да изпуснеш, скобите при def !()
. Освен това решението ти изглежда добре, но оправи евала.
Благодаря за коментара. :) Като цяло се колебаех за eval, защото в момента става много просто решението. Методите са картички и четими според мен. С блокове или ламбди едва ли ще мога да постигна много четим код. Най-вероятно ще сменя схемата като цяло.
За eval
-а ще ти взема точки. Като пич.