我正在创建一个Die类,该类具有输出骰子编号的功能。它已被命名为打印输出和输出,但是由于NoMethodError,该函数继续失败。这是我的代码:
class Die
def initialize()
@number = rand(7)
end
def output()
puts @number
end
def roll()
@number = rand(7)
end
end
Die.new.roll.output
这是我运行代码时的错误:
2:Integer(NoMethodError)的未定义方法`output'
有什么想法吗?
答案 0 :(得分:7)
您必须这样拨打电话:
die = Die.new
die.output # => 1
die.roll
die.output # => 3
首先,您需要将对象(Die.new
)实例化为变量(die
)。
然后在上面调用您的方法。
注意:最好使用rand(1..6)
不使用变量,您可以做得更好:
Die.new.output # => 3
不可能像您那样做连锁方法(或遵循Martin Zinovsky的回答)
答案 1 :(得分:4)
如果要链接方法,则应最后返回实例:
class Die
def initialize
@number = rand(7)
end
def output
puts @number
end
def roll
@number = rand(7)
self # Here
end
end
Die.new.roll.output