【问题标题】:Ruby `to_i!` method not working. Wondering whyRuby `to_i!` 方法不起作用。想知道为什么
【发布时间】:2016-11-25 19:37:03
【问题描述】:

作为一个简单的 Ruby 培训计划的一部分,我有以下内容:

返回错误:

user_num = gets.chomp
user_num.to_i!

工作正常:

user_num = Integer(gets.chomp)

工作正常:

user_num = gets.chomp.to_i

工作正常:

user_numX = gets.chomp
user_num = user_numX.to_i

这是程序:

print "Integer please: "
#code insert location

if user_num < 0
  puts "You picked a negative integer!"
elsif user_num > 0
  puts "You picked a positive integer!"
else
  puts "You picked zero!"
end

关于为什么第一个实例返回错误但其他三个工作正常的任何想法?第一个应该可以正常工作。这让我很烦。谢谢。

【问题讨论】:

  • user_num.to_i! 不只是“返回错误”,它会引发特定的异常和错误消息:NoMethodError: undefined method to_i!'对于“2”:String`(如果已输入"2")。这准确地告诉你问题出在哪里:类String 没有实例方法to_i!。请特别注意错误消息,并在 SO 问题中提及它们时,包括消息的所有相关部分,包括引发异常的行。

标签: ruby string methods integer


【解决方案1】:

根据 Ruby Doc,方法 String#to_i!不存在,所以这应该解释为什么你收到我认为是 NoMethodError 的东西。

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 2013-05-14
    • 2017-10-30
    • 1970-01-01
    相关资源
    最近更新 更多