Будучи новым для Ruby, у меня возникли проблемы с объяснением для себя поведения вокруг определений методов в Ruby.
Пример ниже...
class Foo
def do_something(action)
action.inspect
end
def do_something_else=action
action.inspect
end
end
?> f.do_something("drive")
=> "\"drive\""
?> f.do_something_else=("drive")
=> "drive"
Первый пример является самоочевидным. То, что я пытаюсь понять, - это поведение второго примера. Кроме того, что выглядит как производящий строковый литерал, а другой - нет, что на самом деле происходит? Почему я должен использовать один над другим?