Ruby类中未定义的方法

时间:2016-03-15 00:07:58

标签: arrays ruby class methods

我试图写一个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

1 个答案:

答案 0 :(得分:4)

 @labels.length = 0

应该是

 @labels.length == 0