ruby - "return object if found"的一行

标签 ruby syntax

我目前使用这段代码直接从函数返回一个对象,如果它在数组中找到的话:

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/

相关文章:

ruby : Could not find RedCloth-4. 2.9

javascript - react 运动的压倒性语法

sql - ruby on rails 为 oracle View /函数准备的语句

ruby - Sinatra 中的奇怪问题

声明模板类成员和构造函数时的 C++ 习语

javascript - 这个箭头函数可以缩短吗?这些是一样的吗?

regex - 是否可以更改 emacs 的正则表达式语法?

syntax - 悬空主题(或任何其他)变量不会失败

java - Java 中 'private static final' 和 'public static final' 类变量的最接近的 Ruby 表示?

mysql - 在 Ruby 和 Rails 中使用计算