为什么Ruby连接而不是添加2个值?

时间:2011-12-13 20:00:44

标签: ruby concatenation add

我写了一个小程序来测试Textmate 2(我对Ruby很新),并且由于某些原因它正在吐出4 + 9 = 49而不是13。

def add(x,y)
  c = x + y
  return c
end

puts "please enter a value "
a = gets.chomp
puts "please enter another value "
b = gets.chomp

printMe = add(a,b)

puts printMe

3 个答案:

答案 0 :(得分:7)

因为gets返回一个字符串:

def add(x,y)
  c = x + y
end

puts "please enter a value "
a = gets.to_i
puts "please enter another value "
b = gets.to_i

printMe = add(a,b)

puts printMe

答案 1 :(得分:0)

默认我将输入视为字符串,我猜,尝试:

def add(x,y)
  (x.to_i + y.to_i)
end

此外,无需返回ruby或放在变量c中,它会自动返回最后一行代码作为输出

答案 2 :(得分:0)

如果您执行了puts printMe.inspect,那么您就可以看到它是"49",而不是49ab是{{1}}字符串。有关更多调试提示,请参阅How do I debug Ruby scripts?