我试图写一个Die类,它的两侧带有一个标签数组,我首先想要找到两边的长度(传入的数组的长度)(在我的例如,我只是传入[' A',' B',C']
如果我传入一个空数组,我想引发一个ArgumentError。出于某种原因,当我使用@ labels.length时,我收到一条错误消息: 未定义的方法`length =' for [" A"," B"," C"]:数组(NoMethodError)
我尝试过使用其他常见的数组方法,结果相同。我是否需要在班级中重新定义长度方法?任何帮助将非常感激!这是我的代码..我理解它并不完整,但是
class Die
def initialize(labels)
@labels = [].push(labels).flatten
if @labels.length = 0
raise ArgumentError.new ("You can't use an empty array!")
end
def sides
@labels
end
def roll
p rand(@labels[0]..@lables[labels.length-1])
end
end
end
die = Die.new(['A','B','C'])
p die.roll
答案 0 :(得分:4)
@labels.length = 0
应该是
@labels.length == 0