nik*_*ik7 1 ruby metaprogramming
在Ruby中,我可以写,
Dog = Class.new
Run Code Online (Sandbox Code Playgroud)
所以在这里,Dog是Object一个实例Class.
另外,我可以写
fido = Dog.new
Run Code Online (Sandbox Code Playgroud)
这只有在Doga时才有可能Class.
这是Dog一个Class还是一个Object?
红宝石中的所有东西都是Object(块除外).而Dog这里也是Class.
Dog = Class.new
fido = Dog.new
Run Code Online (Sandbox Code Playgroud)
所以答案是:两者兼而有之.
询问对象本身,知道它们属于哪里,如下所示:
Dog = Class.new
fido = Dog.new
Dog.instance_of? Class #=> true
fido.instance_of? Class #=> false
fido.instance_of? Dog #=> true
Dog.superclass #=> Object
Dog.is_a? Object #=> true
Dog.is_a? Class #=> true
Run Code Online (Sandbox Code Playgroud)
要详细了解,请参阅 Object model Documentation
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |