Рассмотрим следующий класс.
class Test
attr_reader :word
def initialize(word)
@word = word
end
def append_word(token)
word << token
end
end
Рассмотрим пример использования класса.
2.4.0 :001 > t = Test.new('Hello')
=> #<Test:0x007f7f09902970 @word="Hello">
2.4.0 :002 > t.append_word(' world!')
=> "Hello world!"
2.4.0 :003 > t.word
=> "Hello world!"
2.4.0 :004 >
Я новичок в Ruby. Я не понимаю, почему я могу использовать метод экземпляра append_word
для изменения переменной экземпляра @word
экземпляра Test. word
в append_word похоже на читателя поля. Насколько я понимаю, полевой читатель предназначен только для чтения. Как word << token
в append_word
может изменить значение @word
в экземпляре теста?