Rubocop建议您使用
当我运行rubocop:时,我一直受到这种攻击
bin/main:70:6:C:Style/MultipleComparison:避免将变量与条件中的多个项进行比较,使用Array#include?相反
我的代码:
if board1 == [1, 2, 3] || board1 == [4, 5, 6] || board1 == [7, 8, 9] ||
board1 == [3, 5, 7] || board1 == [1, 5, 9] || board1 == [1, 4, 7] ||
board1 == [2, 5, 8] || board1 == [3, 6, 9]
board1.each { |state| board_states[state - 1] = 'X' }
puts "#{player1} win"
break
end
我对ruby和一般编码都是新手。如何按照rubocop的建议重构上面的代码,使其更加简洁?
Array#include?
重构if
条件。
states = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [3, 5, 7], [1, 5, 9], [1, 4, 7], [2, 5, 8], [3, 6, 9]]
if states.include?(board1)
board1.each { |state| board_states[state - 1] = 'X' }
puts "#{player1} win"
break
end