首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >'is_a?‘必需的类或模块(TypeError)

'is_a?‘必需的类或模块(TypeError)
EN

Stack Overflow用户
提问于 2014-04-30 02:38:47
回答 1查看 10.4K关注 0票数 25

我在玩Ruby,试着创建一个小的银行账户程序。当我运行与create_account一起运行的这行代码时:

unless @response.is_a? Integer && @response.to_str.length == 4
    puts "Your response must be 4 numbers in length."
    create_account
else
    @pin = @response
    puts "Your pin has been set."
end

我得到的回应是:

bank_account.rb:24:in 'is_a?':class or module required (TypeError)
    from bank_account.rb:24:in 'create_account'
    from bank_account.rb:47:in '<main>'

我不能确切地弄清楚发生了什么,但我正在包括我的其余代码。它是不完整的,显然是因为我被困在这一部分了。我执行了一个while循环,然后输入'Create Account‘来启动create_account方法。我的目标是运行条件,并要求用户键入一个4位数的整数,就像任何ole引脚号码一样。如果它既不是整数,也不是4位数,我会调用create_account方法让它们重新开始。

如果这些信息是必要的,我会运行ruby 2.0.0,但我打赌这可能更多地与我的代码有关。Stackoverflow对我来说是新的,所以如果有人问我这个问题,我很抱歉。在提问之前,我试着按照建议做了功课,但我还是被难住了。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-30 02:47:02

您需要将类Integer放在括号中:

unless @response.is_a?(Integer) && @response.to_str.length == 4

您实际上是在评估(Integer && @response.to_str.length == 4)上的is_a?,它是一个布尔值,而不是一个类或模块。

票数 61
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23372692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档