У меня есть такое определение класса:Последнее выражение оценивается в Рубине
class Test
attr_accessor :state
def multiple_state=(times)
@state *= times
end
end
obj = Test.new
obj.state = 2
puts #{obj.multiple_state=4}
Я думал, что выход 8, сог, что это значение последнего вычисленного выражения в multiple_state. (?)
Но выход 4.
ли мое понимание последнего выражения оценивается неправильно?
Спасибо.
Спасибо так много. – totally
Итак, даже если у вас есть оператор return явно in = method, значение по-прежнему остается правым? нравится всегда 63.0? что, если я хочу вернуть что-то? или что-то бессмысленное в = методе? – totally
Возвращаемое значение метода не имеет смысла. Он будет возвращен из метода. Но присваивания всегда оценивают значение, которое назначается. Таким образом, вы не можете использовать синтаксис назначения для вызова метода. Но вы можете использовать 'public_send',' send' или '__send__'. –