将字符串转换为整数时出现问题

时间:2017-06-01 14:36:40

标签: ruby

请原谅,这是我在S / O上的第一个问题。我正在尝试创建一个.rb文件,该文件将询问用户的一些问题,包括他们的全名和喜欢的号码。我正在检索最喜欢的号码并向其添加1并将其显示给用户。

这是我的代码

puts "Hello what is your first name?"
firstName = gets.chomp

puts "Okay cool, now what about your middle names?"
middleName = gets.chomp

puts "Alright, now your last name?"
lastName = gets.chomp

puts "...Okay so your name is " + firstName + " " + middleName + ' ' + lastName

puts "Alright " + firstName + " " + middleName + ' ' + lastName + ". What is your favourite number?"
faveNum = gets.chomp.to_i
faveNum + 1

puts "I think your favourite number is " + faveNum

我收到no implicit conversion of Fixnum into String (TypeError)

的TypeError

有人可以向我解释我做错了什么吗?我已经在线查看,当我将.to_i添加到我的faveNum = gets.chomp行时,我认为我得到了答案。但是,唉,仍然没有。

谢谢

1 个答案:

答案 0 :(得分:0)

  

TypeError,没有将Fixnum隐式转换为String   (类型错误)

问题是offsetof是一个数字(即favNum)所以,当您尝试将其与Fixnum连接时,您会得到一个+,因为您首先需要在使用TypeError之前将其转换为String。因此,要做到这一点,只需将+添加到to.s,如下所示:

faveNum

或者,以更惯用的方式,您可以使用字符串插值自动调用puts "I think your favourite number is " + faveNum.to_s

to_s
  

...第10行(faveNum + 1)这个添加没有被携带   进行。

您只是添加puts "I think your favourite number is #{faveNum}" faveNum,但结果未存储在任何位置,因此请更改:

1

对此:

faveNum + 1

使用faveNum += 1 与执行+=相同。