Class.new.new
# => #<#<Class:0x44f3a2>:0xd7244e>我很想知道什么是创造的。它是物体吗?如有任何技术解释,将不胜感激。
发布于 2013-08-27 13:15:26
使用Class.new,您将创建一个新类。实际上,不仅可以通过通用语法创建类:
class Bird
def is
"word"
end
end但是您也可以像这样使用Class::new:
Bird = Class.new do
def is
"word"
end
end在上面的示例中,您可以运行Bird.new.is,它将像第一个示例一样返回"word"。创建匿名类或类非常有用,您可以随意重命名这些类。就你而言:
Class.new.new通过简单地调用Class.new,您将创建一个没有自定义方法或实例变量的新匿名类,然后通过第二个new方法进行实例化。
发布于 2013-08-27 13:01:09
您可以在控制台中跟踪它:
irb(main):011:0> c = Class.new
=> #<Class:0x000000028245e0>c是一个新的类。
irb(main):012:0> c.new
=> #<#<Class:0x000000028245e0>:0x0000000282a170>调用c.new将返回您刚才创建的新类的一个新实例。
发布于 2013-08-27 12:59:32
Class.new创建并返回Class实例(即类)。如果您再次调用它,new将实例化先前创建的类。
https://stackoverflow.com/questions/18466119
复制相似问题