class Store
def check_inventory
@inventory ||= []
@inventory.each { ... }
end
end
带有实例变量的行可以变成一行吗?
答案 0 :(得分:12)
class Store
def check_inventory
@inventory.to_a.each { ... }
end
end
这是有效的原因是Cool Ruby Feature 9,123:正如NilClass
实现了一个返回#to_a
的{{1}}方法!那太棒了?!
[]
答案 1 :(得分:4)
DigitalRoss's answer 几乎相同,但永远不会更改@inventory
;您的代码将确保@inventory
始终是一个数组。如果您需要这种行为,您可以直接组合这两行:
class Store
def check_inventory
(@inventory ||= []).each { ... }
end
end