gpt4 book ai didi

ruby - irb 终止且没有方法错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:55 25 4
gpt4 key购买 nike

当我在 irb 中输入以下行时,irb 终止。

$ irb
irb(main):001:0> def !; end
=> :!
irb(main):002:0> !
/usr/local/lib/ruby/2.1.0/irb/input-method.rb:153:in `gets': private method `!' called for false:FalseClass (NoMethodError)
...
$

撇开定义或调用名为 ! 的方法是否有效的问题,我认为即使出现错误,irb 也不应该退出。这是一个错误吗?你知道是什么原因造成的吗?

最佳答案

在文件中使用此代码:

def !;
puts "Hi"
end

send(:!)

!();

Ruby (1.9.3) 给出了这个:

Hi
testexclaim.rb:7:in `<main>': private method `!' called for nil:NilClass (NoMethodError)

在我的 1.9.3 IRB 中,它似乎在解释 !作为非运算符,即使有括号也是如此。

在我看来,因为 send 有效,所以这更像是一个解析错误,而不是 IRB 和 Ruby 都无法处理的任何其他错误。

关于ruby - irb 终止且没有方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572126/

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