Jör*_*tag 27
在class定义体内部,self指的是类本身.Module#name会告诉你类/模块的名称,但只有它实际上有一个.(在Ruby中,没有"类名"这样的东西.类就像任何其他类似对象一样被赋予变量就像任何其他对象一样.只是如果你碰巧将一个类对象赋给一个常量,那么该name方法将返回该常量的名称.)
例:
puts class Foo
name
end
# Foo
Run Code Online (Sandbox Code Playgroud)
但:
bar = Class.new
bar.name # => nil
BAR = bar
bar.name #=> 'BAR'
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex 26
课堂内部:
class_name = self.class
Run Code Online (Sandbox Code Playgroud)
在名为的初始化对象上obj:
class_name = obj.class
Run Code Online (Sandbox Code Playgroud)