单例方法的定义:
object = Object.new
def object.show
p "show"
end
通过定义单例类来定义单例方法:
object = Object.new
class << object
def show2
p "show2"
end
end
疑问:那这两个定义的方式是有什么区别?
其实是有一个不同点:常量的解析方式。
在单例类中定义的常量N,方法中是使用自己单例类中定义的常量。
N = 2
object = Object.new
def object.show
p N
p "show"
end
class << object
N = 3
include Comparable
def show2
p N
p "show2"
end
end
object.show
object.show2
输出结果:
2
"show"
3
"show2"
网友评论