Ruby 在方法中使用模运算符时遇到问题

Ruby 在方法中使用模运算符时遇到问题,ruby,debugging,modulo,Ruby,Debugging,Modulo,我有两种方法回合计数(棋盘)和当前棋手(棋盘)。返回数组中“X”和“O”的数量的turn_count(board)方法工作正常。但是,当前的棋盘手(棋盘)方法,如果回合数(棋盘)为偶数,则应将“X”放在棋盘上,如果回合数(棋盘)为奇数,则应将“O”放在棋盘上,这一直给我一个错误。错误是: /Users/john/Desktop/test file.rb:13:incurrent\u player:nil:NilClass(NoMethodError)的未定义方法 来自/Users/john/De

我有两种方法回合计数(棋盘)和当前棋手(棋盘)。返回数组中“X”和“O”的数量的turn_count(board)方法工作正常。但是,当前的棋盘手(棋盘)方法,如果回合数(棋盘)为偶数,则应将“X”放在棋盘上,如果回合数(棋盘)为奇数,则应将“O”放在棋盘上,这一直给我一个错误。错误是:

/Users/john/Desktop/test file.rb:13:in
current\u player:nil:NilClass(NoMethodError)的未定义方法
来自/Users/john/Desktop/test file.rb:18:in`'

很明显,它在说模运算符的使用有问题,但我不知道为什么,我一直绞尽脑汁想弄清楚

非常感谢您的帮助

def turn_count(board)
      count = 0
    board.each do |x| if x == "X" || x == "O" 
      count = count + 1
    end
  end
    puts count
end 


def current_player(board)
  if turn_count(board) % == 0
     puts "X"
  else
     puts "O"
  end 
end

问题是您在类上使用了%。您的turn_count()方法返回nil。检查如果将puts count替换为count会发生什么情况。

非常感谢!这很有效,我学习了nil类。没问题,你能接受我的答案吗?你的意思是它不再放一个带“3”的字符串了。上述方法应返回3。使用,可以在控制台中打印输出,但这不是必需的。你在用Ruby和Rails吗?这一点都不重要。非常感谢。在我的机器上,
turn\u count(board)%==0
导致语法错误。请检查您的示例代码。