【发布时间】:2012-05-20 08:00:29
【问题描述】:
我编写了以下 Ruby 代码:
def myItems
if @item1
yield @item1
end
if @item2
yield @item2
end
end
现在我尝试使用:
myItems.each do |item|
puts item
end
但是,当 @item1 和 @item2 都为 nil 时,我收到错误:
Error: #<NoMethodError: undefined method `each' for nil:NilClass>.
我希望在 C# 中使用与“yield break”等效的方法来防止这种情况。有谁知道这在 Ruby 中是如何工作的?
【问题讨论】:
-
如果您能澄清在什么情况下要“打破”,我可以编辑答案以进一步帮助您满足您的确切需求。
-
我是 Ruby 的初学者,所以我将 Array 与 Enumerator 混淆了。所以这是一个愚蠢的问题,但感谢您的精彩回答:)