Переменная в Ruby в условном модификаторе if

У меня есть вопрос о том, как интерпретатор Ruby назначает переменные:

Я использую это довольно часто:

return foo if (foo = bar.some_method)

где some_method возвращает объект или ноль.

Тем не менее, когда я пытаюсь это:

return foo if (true && (foo = bar.some_method))

Я получаю: NameError: неопределенная локальная переменная или метод foo для main: Object.

Какая разница в оценке между первой и второй строками, которая вызывает ошибку во второй строке?

Ответы на вопрос(1)

Ваш ответ на вопрос