我目前使用这段代码直接从函数返回一个对象,如果它在数组中找到的话:
already_existing = my_array.find { |v| ... predicate ... }
return already_existing if already_existing
# ...
# Remaining of the function should be executed if object not found
有没有一种优雅的方法可以将其转换为单行代码?
注意:当然不用调用 find
两次,或者先调用 include?
再调用 find
因为这样会性能受到影响)
最佳答案
你可以使用短路。
my_array.find { |v| ... predicate ... } or begin
# the other logic
end
但我个人会选择 return existing if existing
。在这种情况下,治疗比疾病本身更糟糕。
关于ruby - "return object if found"的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56788765/