Pourquoi toutes les classes Scala héritent de ScalaObject
bien que ce trait soit complètement vide et n'ait aucune fonctionnalité (visible?) Par rapport à AnyRef
, qui définit des méthodes supplémentaires?Pourquoi `ScalaObject` existe-t-il?
Ne qui appelle la méthode ralentir comme equals()
ou hashCode()
parce qu'il devra prendre une autre classe en considération (qui pourrait remplacer les méthodes)?
N'est-il pas possible de replier AnyRef et ScalaObject dans une classe?
MISE À JOUR: ScalaObject was eradicated avec une nouvelle version de 2.10 Scala.
Pourquoi cette méthode $ tag n'est-elle pas insérée dans AnyRef? – soc
Compat arrière, je suppose. (J'ai prolongé ma réponse après avoir téléchargé et lu le code source 2.8.) –
J'ai parcouru le code du compilateur et il y a du code pour le gérer d'une manière spéciale (fichier 'Global.scala'), mais aucune explication pourquoi c'est là. –