gpt4 book ai didi

Ruby 'is_a?' 需要类或模块 (TypeError)

转载 作者:数据小太阳 更新时间:2023-10-29 06:31:26 31 4
gpt4 key购买 nike

我正在尝试使用 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 方法。我的目标是运行条件并要求用户键入一个 4 位整数,就像任何 ole pin 号码一样。如果它不是整数或 4 位长度,我将调用 create_account 方法让它们重新开始。

如果该信息是必需的,我正在运行 ruby​​ 2.0.0,但我敢打赌这可能更多地与我的代码有关。 Stackoverflow 对我来说是新手,所以如果有人问这个问题,我深表歉意。在提问之前,我试着按照建议做功课,但我仍然很困惑。感谢您的帮助。

最佳答案

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

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

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

关于Ruby 'is_a?' 需要类或模块 (TypeError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23372692/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com