Надо все же записать, а то сам регулярно на эти грабли наступаю...
Важное отличие между “def
” и “define_method
” в том, что “def
” формирует свой собственный, полностью автономный контекст, а “define_method
” работает с замыканием. Т.е. в примере:
a = 1 define_singleton_method :alpha do p a end def beta p a end alpha beta
вызов “alpha
” отработает нормально, а вот при вызове “beta
” Ruby доложит о неопределенной переменной.
Комментариев нет:
Отправить комментарий