Ruby is_a?(整数)问题

时间:2013-09-06 13:01:07

标签: ruby

我正在尝试测试我的变量是否为Integer,这是代码:

if (params[:int1].is_a?(Integer) && params[:int2].is_a?(Integer))
  add(params[:int1], params[:int2])
else
  puts "Need two integers"
end

如果你知道为什么它不起作用,你就会全神贯注。

2 个答案:

答案 0 :(得分:0)

params= { int1: "1" }

puts params[:int1].class

> String

你的params哈希可能包含字符串值而不是整数。如果你想检查一个字符串是否是一个有效的整数,你可以尝试对正则表达式进行验证,如下所示:

if /\d+/=~ params[:int1]
  # do stuff
end

答案 1 :(得分:0)

params []只存储字符串。你需要将它们转换成整数。

尝试类似:

params[:int1].empty? ? raise EmptyIntegerException : my_int1 = params[:int1].to_i