我在Ruby代码中看到并使用过很多||=
,但我在实际应用中几乎从未见过或使用&&=
。是否有&&=
的用例?
答案 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