我有这样(截断/转述了可读性)红宝石每个迭代器返回数组而不是布尔
def board_check?
@board.each {|row| check_row_for_truth_conditions(row)}
end
def check_row_for_truth_conditions(row)
return true if row.include("foo")
false
end
眼下的每一个迭代器始终是它遍历集合隐含返回代码。即;我得到数组,不是真或假。如果我不重构并执行如下操作,它将按预期工作。不过我用的是check_row_for_truth_conditions在很多地方(这是更长的时间),所以想重构出来
def board_check?
@board.each do |row|
return true if row.include("foo")
false
end
end
我想通了。使用任何我可以得到我想要的?而不是每个。所以'@ board.any? {|行| check_row_for_truth_conditions(row)}' – user2892536