红宝石代码
class Word < Array
def g
puts "JJ"
end
end
w = Word.new([4, 6])
puts Word.method(:g)
产生以下错误:
main.rb:9:in `method': undefined method `g' for class `#<Class:Word>' (NameError)
from main.rb:9:in `<main>'
因为g
是Word
的实例方法,而不是其类方法。
看起来实际上抛出此错误消息的方法是method
。如果不是这样的话,我将无法解释如何产生这样的错误信息。
它实际上是抛出此错误消息的方法吗?
在这里,我们将符号:g
传递给方法Word.method
,并等待其执行。 ruby解释器不能事先知道它会是一个错误,只有当方法method
检查一个名称类似于符号:g
的函数的存在时,它是否(方法)决定一个错误存在。控制台/口译员事先无法知道错误。
答案 0 :(得分:0)
是。说明:
in `method'
错误信息中的就是指。