我正在玩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引脚号。如果它不是整数也不是4位数字,我将调用create_account方法以使它们重新开始。
如果需要该信息,我将运行ruby 2.0.0,但我认为这可能与我的代码有关。Stackoverflow对我来说是新手,因此如果有人提出这个问题,我深表歉意。我试图按照提出问题之前的建议做作业,但是我还是很沮丧。任何帮助表示赞赏。
您需要将类Integer
放在括号中:
unless @response.is_a?(Integer) && @response.to_str.length == 4
你实际上evaulatingis_a?
上(Integer && @response.to_str.length == 4)
这是一个布尔值,而不是一个类或模块。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句