我在Scala REPL中写了以下内容。我不明白REPL为我创造了什么。类c
的{{1}}对象是?如何找到属于Any
的班级?
c
答案 0 :(得分:2)
通过声明object c
,您基本上实例化名称为c
的单个对象,该对象没有自定义属性或方法。此对象不是Any
类型,您可以通过以下方式查看其类:
scala> object c
defined object c
scala> c.getClass
res14: Class[_ <: c.type] = class c$
要了解有关单例对象的更多信息,请阅读参考here。摘录:
Singleton对象是定义单次使用的简写 class,不能直接实例化,而val成员在 对象的定义点,具有相同的名称。的确如此 vals,singleton对象可以定义为特征或类的成员, 虽然这是非典型的。
答案 1 :(得分:0)
object c
的类(类型)是c.type
。通过在Scala中声明一个对象,您隐式定义了class和singleton对象(Scala将为您生成这些对象)。由于类没有在源代码中明确定义,因此存在名为type
的特殊对象成员来引用对象的类。