0

假设search很贵,有没有办法把它做成一个班轮?

result = Product.search(query)
return result if result

由于搜索成本很高,因此以下内容已出:

return Product.search(query) if Product.search(query)
4

5 回答 5

3
result = Product.search(query) and return result
于 2013-08-17T02:33:20.093 回答
1

一种解决方案(Ruby 1.9+):

Product.search(query).tap {|result| return result if result }

但我不认为这会使代码变得清晰。我宁愿写这样的东西:

if result = Product.search(query)
  return result
end
于 2013-08-17T02:39:15.600 回答
1

一种可能:

if result = Product.search(query) then return result end
于 2013-08-17T06:20:08.333 回答
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.

于 2013-08-17T14:41:17.783 回答
0

如果它不依赖于返回的内容,您可以简单地制作这样的一行:

return Product.search(query)
于 2013-08-17T15:33:31.647 回答