调用实例方法.数组消息中出现错误



我是ruby新手。我试图调用我的实例方法(shake),以便它返回字符串"cling"但它一直给我的消息:未定义的方法' break'为[50]:Array (NoMethodError)。请帮助我理解为什么?

class PiggyBank
def initialize
@storage = []
end
def insert(coin)
@storage << coin
end
def shake
if @storage.empty?
nil
else
'clink'
end
end
def break
@storage.count
end
end
p PiggyBank.new.insert(50).break

你的insert方法返回一个没有break方法的数组(break是你在PiggyBank上定义的方法)

你可以从插入方法中返回一个PiggyBank的实例(这样你就可以链接其他的实例方法,比如break),或者用不同的方式构造代码。

def insert(coin)
@storage << coin
self
end

相关内容

最新更新