假设search
很贵,有没有办法把它做成一个班轮?
result = Product.search(query)
return result if result
由于搜索成本很高,因此以下内容已出:
return Product.search(query) if Product.search(query)
假设search
很贵,有没有办法把它做成一个班轮?
result = Product.search(query)
return result if result
由于搜索成本很高,因此以下内容已出:
return Product.search(query) if Product.search(query)
result = Product.search(query) and return result
一种解决方案(Ruby 1.9+):
Product.search(query).tap {|result| return result if result }
但我不认为这会使代码变得清晰。我宁愿写这样的东西:
if result = Product.search(query)
return result
end
一种可能:
if result = Product.search(query) then return result end
为什么不
return Product.search(query)
在你的例子中
result = Product.search(query)
return result if result
如果结果为 false/nil,您没有定义应该返回什么。我的解决方案只是返回这个 false/nil。
选择:
return Product.search(query) || 'Sorry no result'
如果您在 reutrn 之后有替代代码,您可以使用
return Product.search(query) || other_method_to_get_result
other_method_to_get_result
是另一种搜索的方法 - 或者您通常在return
.
如果它不依赖于返回的内容,您可以简单地制作这样的一行:
return Product.search(query)