我正在使用 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
你实际上正在评估is_a?
on (Integer && @response.to_str.length == 4)
这是一个布尔值,而不是一个类或模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)