34Fermer36
GoldenCrystalLe 25/12/2014 à 22:46
Hmm mais ça, ça pourrait jamais fonctionner avec le même genre de modèle que celui sur lequel fonctionne Java.
Le fait que ça marche dans un cas vient d'un truc qui est parfois considéré comme une erreur de design du Java (qu'on se traine en .NET pour des raisons de compatibilité), le fait que les tableaux soient covariants:
http://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29#Covariant_arrays_in_Java_and_C.23
http://c2.com/cgi/wiki?JavaArraysBreakTypeSafety
En fait, un langage/runtime bien conçu devrait interdire d'utiliser un tableau de X comme un tableau de Y dans tous les cas.
Scala te reflète le comportement de Java ici, mais ils auraient aussi pu interdire d'utiliser la covariance des tableaux pour être plus consistants. Par contre c'est pas certain que tout le monde en aurait été content.