为什么其他方法不能使用某些方法?

时间:2014-04-28 17:56:06

标签: ruby

为什么不能通过其他方法更改/使用方法?特别是,为什么这不起作用?

puts 'enter a number: ' 
first=gets.chomp
puts 'enter another number: ' 
last=gets.chomp
total = first.to_i + last.to_i
puts 'total of the two values is ' + total.to_s

这两个变量现在是整数。为什么不能添加它们?例如,我可以做到这一点,当你想到它时,这并没有那么不同:

total = first.lenght + second.lenght

1 个答案:

答案 0 :(得分:-1)

在最后一行的代码中,您正在执行puts 'total of the two values is ' + total

总计正在返回integer,但您正在尝试连接到string,因此,它会抛出如下错误。

1.9.3p448 :013 > puts 'enter a number: ' 
enter a number: 
=> nil 
1.9.3p448 :014 > first=gets.chomp
3
=> "3" 
1.9.3p448 :015 > puts 'enter another number: ' 
enter another number: 
=> nil 
1.9.3p448 :016 > last=gets.chomp
3
=> "3" 
1.9.3p448 :017 > 
1.9.3p448 :018 >   total = first.to_i + last.to_i
=> 6 
1.9.3p448 :023 >   puts 'total of the two values is ' + total
TypeError: can't convert Fixnum into String
from (irb):23:in `+'

所以,只有我们必须将integer改为string,例如total.to_s 要么 puts "total of the two values is: #{total}"我们必须这样做。