过滤掉 int 和符号数组中的整数

Filter out integers in an array of int and symbols

我见过很多 post 使用 .kind_of 整数或 .integer?如果输入是一个 int 或一个字符串,这些工作,但我有一个包含符号和整数值的散列,当我遇到一个整数时,我想遍历这些值和标志。

更具体地说,我正在玩井字游戏,在我的棋盘上,每个位置都会有一个 in(位置编号)或 :x 或 :y,因为它已被该玩家玩过。为了检查游戏是否平局,我想尝试迭代这些值,如果我找到一个整数,那么我知道棋盘不是 "full".

您可以这样使用 is_a?(Integer)

{ :x => 1, :y => 'foo' }.each do |key, value|
  puts value.is_a?(Integer)
end

编辑:尝试像这样检查符号:

case parameter
  when Symbol
    # process Symbol logic
  when String
    # process String logic
  when Integer
    # process Integer logic
  else
    # some other class logic
end