みなさんこんにちは。私はシンプルなルビーコードを書いていますが、画面には表示されません。私はRuby 2.2.2を使用しています。私のIDEはRubymine 7.Thanksです。ここにはコードがあります。 `Zoo.my_animals`の定義においてRubyプログラムが画面に表示されない
class Animal
attr_accessor :name, :colour
def initialize(name,colour)
@name = name
@colour = colour
end
def to_s
"Name#{@name} Colour #{@colour}"
end
end
class Cheetah < Animal
attr_reader :speed
def initialize(name,colour,speed)
@speed = speed
super (name,colour)
end
def to_s
return super + "Speed#{@speed}kph"
end
end
class Zoo < Animal
def initialize
@animals = []
end
def add_animals(animal)
@animals << animal
end
def my_animals
cage = ""
@animal.each do|call|
cage += call.to_s
end
end
end
5.times do|count|
Zoo.add_animals(MyAnimal.new("Cheetah#{count}","yello and black spots"))
end
puts "#{Zoo.my_animals}"
My_cheetah = Cheetah.new("Cheetah","yello and black spots",180)
puts "#{My_cheetah.to_s}"
あなたも、同じ方法で、あなたは文字列('ケージを構築している、 '@のanimal'を(つまり、複数形ではない)を参照しています')、しかしあなたはそれを返すことはありません(' .each'への呼び出しの戻り値はゼロです)。 – user12341234
'each'の戻り値は、' each'のドキュメントで指定されているように 'self'です。 –