我试图编写一些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