假设search
价格昂贵,有没有办法让它成为一个班轮?
result = Product.search(query)
return result if result
由于搜索费用昂贵,以下内容如下:
return Product.search(query) if Product.search(query)
答案 0 :(得分:3)
result = Product.search(query) and return result
答案 1 :(得分:1)
一个解决方案(Ruby 1.9 +):
Product.search(query).tap {|result| return result if result }
但我不认为这会让代码变得清晰。我宁愿写一些类似的东西:
if result = Product.search(query)
return result
end
答案 2 :(得分:1)
一种可能性:
if result = Product.search(query) then return result end
答案 3 :(得分:1)
为什么不
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
之后通常拥有的任何内容。
答案 4 :(得分:0)
如果它不依赖于返回的内容,那么简单就可以像这样制作一行:
return Product.search(query)