Я пытаюсь понять себя в Ruby.Понимание себя с помощью метода chaining
В коде вставили ниже, если я создаю новый экземпляр животных с
fox = Animal.new.name("Fox").color("red").natural_habitat("forest").specie("mammal")
, а затем вызвать
fox.to_s
Это ничего не делать, если я не вернусь самостоятельно в каждом методе.
Зачем мне нужно самостоятельно в каждом методе? Является ли переменная уже сохраненной после создания нового Animal?
class Animal
def name(name)
@name = name
self
end
def specie(specie)
@specie = specie
self
end
def color(color)
@color = color
self
end
def natural_habitat(natural_habitat)
@natural_habitat = natural_habitat
self
end
def to_s
"Name: #{@name}, Specie: #{@specie}, Color: #{@color}, Natural Habitat: #{@natural_habitat}"
end
end
Если вы хотите иметь прикованные методы/свободный интерфейс, вам нужно вернуть объект из каждого вызова метода.В противном случае вы не можете вызвать дополнительные методы для результата вызова метода. – deceze