ruby - 数组无法强制转换为 Fixnum(类型错误)

标签 ruby typeerror

我已经编写了一个基本的计算程序。该程序对于某些输入运行良好,而对于其他输入则给出 TypeError。我无法弄清楚这种不可预测的行为背后的原因。这是我的代码 -

class Conversion
I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000
result = 0
puts "enter the string"
input = gets.chomp.upcase
temp = input.split(//)
for i in temp do
    case i
        when 'M'
            result = result + M
        when 'D'
            result = result + D
        when 'C'
            result = result + C
        when 'L'
            result = result + L
        when 'X'
            result = result + X
        when 'V'
            result = result + V
        when 'I'
            result = result + I
        end
   end
   puts result
end

错误日志如下 -

assignment1.rb:22:in +': Array can't be coerced into Fixnum (TypeError) from assignment1.rb:22:inblock in ' from assignment1.rb:7:in each' from assignment1.rb:7:in' from assignment1.rb:1:in `'

现在,当我提供 mxcd、dcm、lxv 等输入时,它工作正常。但对于像 xvi、ivx、icd 这样的输入,它会给出 TypeError。

需要帮助。提前致谢。

最佳答案

I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000

被解释为

I = ( 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000)

结果

I = [1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000]

用逗号替换分号。

关于ruby - 数组无法强制转换为 Fixnum(类型错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126659/

相关文章:

ruby - 无法使用 ruby​​ aws-sdk v2 在 S3 中创建存储桶

ruby - 在 ruby​​ 中释放对象的最佳实践

javascript - jQuery.浏览器 : Javascript Uncaught TypeError

python - 类型错误:prepare_request_body() 获得关键字参数 'redirect_uri' 的多个值

python - GAE 类型错误 : not enough arguments for format string

ruby - 如何为 Ruby 中的哈希列表中的每个键提取更大的值

ruby-on-rails - 我什么时候应该使用 Lambda 或匿名方法?

javascript - 如何在 GatsbyJS/ReactJS 中重复执行窗口函数?

Windows下Ruby找不到模块(LoadError)

javascript - 如何解决此错误类型 'Uncaught TypeError: (...) is not a function' ?