我试图创建一个类歌曲,它接收两个输入,歌曲和艺术家,并创建数组的对象,即[歌曲,艺术家]。当我运行此代码时,我断言我的对象是一个数组失败。如何正确编写一个初始化方法,该方法接收两个输入并创建一个数组对象?
我的代码:
class Song
def initialize(song, artist)
@piece = [song, artist]
end
end
hello = Song.new("hello", "goodbye")
def assert
raise "Assertion failed!" unless yield
end
assert { hello.kind_of?(Array) }
答案 0 :(得分:1)
您的断言假定hello
是array
,这是不正确的。 hello
是类Song
的一个实例。
但是,如果您确实已将此添加到班级的顶部:
attr_reader :piece
然后做了这个
assert { hello.piece.kind_of?(Array) }
会过去。
答案 1 :(得分:1)
hello
是Song
对象,不是数组对象。你的意思是hello.piece
?
class Song
attr_reader :piece # <---------
def initialize(song, artist)
@piece = [song, artist]
end
end
hello = Song.new("hello", "goodbye")
def assert
raise "Assertion failed!" unless yield
end
assert { hello.piece.kind_of?(Array) } # <------