Dlaczego wszystkie klasy Scala dziedziczą po ScalaObject
, chociaż ta cecha jest całkowicie pusta i nie ma funkcji (widocznej?) W porównaniu do AnyRef
, która definiuje dodatkowe metody?Dlaczego istnieje `ScalaObject`?
Czy to nie spowolni wywołań metod takich jak equals()
lub hashCode()
, ponieważ będzie musiał wziąć inną klasę pod uwagę (co może zastąpić metody)?
Czy nie można złożyć AnyRef i ScalaObject w jedną klasę?
UPDATE: ScalaObject was eradicated z nowej wersji 2.10 Scala.
Dlaczego ta metoda $ tag nie jest wstawiona do AnyRef? – soc
Zgodny wstecz, jak sądzę. (Rozszerzyłem moją odpowiedź po pobraniu i przeczytaniu kodu źródłowego 2.8.) –
Przeszedłem przez kod kompilatora i jest jakiś kod do obsługi go w specjalny sposób (plik 'Global.scala'), ale nie ma wyjaśnienia, dlaczego tak jest. –