2017-01-05 95 views
-1

类名的数据类型是什么?或者用正确的术语来说,这个常量的类是什么?在红宝石中不断是一个类还是一个模块?ruby​​中类的名称的数据类型(类)是什么?

class Abc 
end 

什么是Abc

+1

'Abc'是一个常数,但它也是一个类,因此也是一个模块和一个对象:-) – Stefan

+0

@Stefen可以请你分享一些参考,因为许多其他评论是矛盾的。 – ancho

+4

当然:'定义? Abc#=>“常量”和“Abc.is_a? Class#=> true'和'Abc.is_a? Module#=> true'和'Abc.is_a? Object#=> true' – Stefan

回答

1

那么这个常量的数据类型是什么,即字符串,整数。

class是类Class的一个实例。

您可以检查它(与其他任何物体,只需拨打.class就可以了):

Abc.class 
#=> Class 

是恒定的一类或红宝石模块?

都没有。常量是一个常数。常量已分配值。

+0

因此,常量是一个独立定义的实体在红宝石? – ancho

+1

@ancho就像“变量”一样。 – Stefan

+1

一个类的类是'Class'。类名的类通常是'String',有时候是'Symbol'。 – sawa

3

什么是类名的数据类型?

“class name”是什么意思? Ruby中没有真正的名称。类有一个name方法,该类为String返回该类的人类可读名称。

或者按照正确的术语,这个常量的类是什么?在红宝石中不断是一个类还是一个模块?

都没有。常量不是Ruby中的对象,因此它们没有类。 (这与几乎所有其他语言都是一样的。)

什么是Abc

引用类别Class的对象的常量。顺便说一句:我注意到你可以互换地使用术语“类型”和“类”,但它们不是。类型和类是不同的东西。

+0

“Abc是一个引用class类对象的常量。”这是否意味着Abc常量持有类类的对象引用? – ancho

+1

编号'Abc'持有对'Class'类的*实例的对象的引用。 –

相关问题