你会如何在ruby中实现这个成语?

tru*_*ekr 4 ruby

作为一个来自Java背景并成为Ruby新手的人,我想知道是否有一种简单的方法可以使用ruby.

new_values = foo(bar)
if new_values
  if arr
    arr << new_values
  else 
    arr = new_values
  end
end
Run Code Online (Sandbox Code Playgroud)

Chr*_*ald 7

假设"arr"是数组或者是nil,我会使用:

arr ||= []
arr << new_values
Run Code Online (Sandbox Code Playgroud)

如果你是在循环或其他类似的情况下这样做,可能会有更多的惯用方法来做到这一点.例如,如果您正在迭代列表,将每个值传递给foo()构造结果数组,那么您可以使用:

arr = bars.map {|bar| foo(bar) }
Run Code Online (Sandbox Code Playgroud)