我正在尝试测试我的变量是否为Integer,这是代码:
if (params[:int1].is_a?(Integer) && params[:int2].is_a?(Integer))
add(params[:int1], params[:int2])
else
puts "Need two integers"
end
如果你知道为什么它不起作用,你就会全神贯注。
答案 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