如何从Ruby块提前返回值?

时间:2016-11-02 18:01:00

标签: ruby

我试图编写一些Ruby代码,它将从传递给函数的块返回一个值。我不希望块提前退出,我只是想避免编写太多if语句以隐式返回值。

如何重写此值以提前返回值?

这有效:

def my_method
  my_array.delete_if do |item|
    if item.removed?
      true
    elsif item == 'something else'
      true
    else
      false
    end
  end
end

这不会起作用,因为你无法在一个区块中调用回报:

def my_method
  my_array.delete_if do |item|
    return true if item.removed?
    return true if item == 'something else'

    # ...
  end
end

0 个答案:

没有答案