Рубин Коан? - не может установить переменную с тем же именем, что и имя метода при отображении - PullRequest
0 голосов
/ 18 марта 2012

рассмотрим следующий код

def salt
  []
end

def pepper
  salt = salt.map{ |grain| 'ok' }
end

Дает следующий результат:

NoMethodError (undefined method `map' for nil:NilClass):

Почему именно эти обстоятельства вызывают ошибку?Это неожиданно.

1 Ответ

5 голосов
/ 18 марта 2012

Поскольку ваша локальная переменная salt равна , теневая , метод salt.Поскольку переменная salt была только что определена, ее значение равно nil.Вы можете исправить это, явно вызвав salt в экземпляре, чтобы получить метод:

def pepper
  salt = self.salt.map{ |grain| 'ok' }
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...