代码:
91+I-v
V
O
@
我为PPCG(编程难题和代码高尔夫)提交了此代码,但它不起作用。
它返回的错误代码是 /opt/simplefunge/simplefunge.rb:53:in
<main>': undefined method
ord for nil:nilclass(nomethoderror)
是否有任何解决方案?
您的代码期望通过i命令从stdin输入。如果您不提供输入,则tio.run提供一个空列表。错误消息告诉您的是,解释器无法通过ORD操作将空输入(NIL)转换为数值,该数值是为字符定义的。
这可以在本地复制为:
$ echo -n | ruby simplefunge.rb test.funge
Traceback (most recent call last):
simplefunge.rb:53:in `<main>': undefined method `ord' for nil:NilClass (NoMethodError)
要解决第一个问题,请提供输入。
您将在代码中的o命令中获得类似的错误,因为先前的V操作将您移至堆栈限制外,再次导致尝试在nil上应用字符操作时,当您尝试将堆栈值打印为字符时:
simplefunge.rb:57:in `<main>': undefined method `chr' for nil:NilClass (NoMethodError)