2017-11-12 2 views
0

Ich schrieb folgendes in Scala REPL. Ich verstehe nicht, was REPL für mich geschaffen hat. Ist c Objekt der Klasse Any? Wie finde ich heraus, zu welcher Klasse c gehört?zu welcher Klasse gehört das Objekt

scala> object c 
defined object c 
+0

https://Stackoverflow.com/q/39286272/3604745 –

Antwort

2

von object c erklärt, instanziieren Sie im Grunde ein Singleton-Objekt mit dem Namen c, die keine benutzerdefinierten Eigenschaften oder Methoden hat. Diese Aufgabe ist nicht vom Typ Any, und man kann seine Klasse sehen von:

scala> object c 
defined object c 

scala> c.getClass 
res14: Class[_ <: c.type] = class c$ 

Um mehr über Singleton Objekte zu verstehen, lesen Sie die Referenz here. Ein Auszug:

Singleton-Objekte sind eine Art von Kurzschrift einer Einweg Klasse zu definieren, die nicht direkt instanziiert werden können, und ein val Element am Punkt der Definition des Objekts, mit dem gleichen Name. In der Tat, wie Vals, können Singleton-Objekte als Mitglieder eines Merkmals oder einer Klasse, , definiert werden, obwohl dies atypisch ist.

0

Die Klasse (Typ) von object c ist c.type. Indem Sie ein Objekt in Scala deklarieren, definieren Sie implizit sowohl Klassen- als auch Singleton-Objekte (Scala erzeugt diese für Sie). Da die Klasse im Quellcode nicht explizit definiert ist, gibt es ein spezielles Objektelement namens type, das auf die Klasse des Objekts verweist.

Verwandte Themen