【发布时间】:2019-08-20 09:03:09
【问题描述】:
上下文:我目前正在使用parser gem 并尝试处理什么是公共方法的所有情况。
我已经编写了下一个代码,希望它在运行时会失败。但事实并非如此。
class Foo
class << self
def self.met
puts "I'm just a troll"
end
class << self
def mut
puts "Try and find me"
end
end
end
end
所以我想知道met 可调用的位置在哪里(Foo.met 会引发NoMethodError)?这是一个有用的 Ruby 模式,还是我不应该做的事情,也不在乎?
【问题讨论】:
-
Foo.singleton_class.met显然。您打开一个单例类并在其单例类上定义一个方法。 -
我想要一些关于否决票的解释......和@AlekseiMatiushkin 我一直在寻找
singleton_class的解释,但每个案例都引用singleton_class的用法而不是类的实例.因此我真的不明白这里的用法:/ -
投反对票不是我的;我会发布答案来解释细节。
-
为了人类的恒常性而投票。