Ruby当前类

Cha*_*tni 23 ruby

如何确定Ruby中当前的开放类?

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)