有没有更简单的方法?

Rya*_*wis 3 ruby

class Store
  def check_inventory
    @inventory ||= []
    @inventory.each { ... }
  end
end
Run Code Online (Sandbox Code Playgroud)

具有实例变量的行可以变成单行吗?

Dig*_*oss 12

是!!Ruby中总有一个很酷的黑客!


class Store
  def check_inventory
    @inventory.to_a.each { ... }
  end
end
Run Code Online (Sandbox Code Playgroud)

这是有效的原因是Cool Ruby Feature 9,123:实际上,它NilClass实现了一个#to_a返回的方法[]!那太棒了?!

edtq ross$ irb --prompt-mode simple
>> nil.to_a
=> []
>> @this_does_not_exist.to_a
=> []
Run Code Online (Sandbox Code Playgroud)

  • +1听起来很兴奋. (3认同)