用例为'&& =`

时间:2013-04-13 15:22:26

标签: ruby syntactic-sugar

我在Ruby代码中看到并使用过很多||=,但我在实际应用中几乎从未见过或使用&&=。是否有&&=的用例?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

e.g。

 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

答案 2 :(得分:-2)

验证文件,例如

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

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