4

我自己在 Ruby 代码中看到和使用过很多,但在实际应用中||=我几乎从未见过或使用过。&&=有用例&&=吗?

4

3 回答 3

3

不是油嘴滑舌,但显而易见的用例是任何时候你会说x && foo并希望将结果存储回x. 这是一个:

list = [[:foo,1],[:bar,2]]
result = list.find{ |e| e.first == term }
result &&= result.last  # nil or the value part of the found tuple
于 2013-04-13T15:46:21.230 回答
0

您希望确保对所有元素的布尔条件的评估对所有元素都返回 true 的任何类型的迭代。

例如

 result = true
 array.each do |elem|
   # ...

   result &&= condition(elem)   # boolean condition based on element value
 end
 # result is true only if all elements return true for the given condition
于 2013-04-13T18:44:17.127 回答
-2

文件的验证,例如,

a = {'a' => ['string',123]}

其中的元素a['a']应该是 a String。为了验证它们,我认为你可以使用,

def validate(doc, type)
  valid = true
  doc.each{|x|
    valid &&= x.is_a? type
  }
  valid    
end

1.9.3p392 :010 >   validate(a['a'],String) => false
于 2013-04-13T15:39:44.043 回答