38Fermer40
flankerLe 25/12/2014 à 23:04
GoldenCrystal (./35) :
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.

Oui, je connais le problème de la covariance, mais dans mon cas, je ne vois vraiment pas comment je peux faire autrement ^^
Le point que je mettais en avant, c'est que j'ai un problème purement Scala qui ne peut être compris qu'en connaissant Java (alors que j'ai même pas 10 jours de Scala derrière moi, on ne peut pas dire que je sois allé très loin).

Je n'ai jamais eu de problème Java, CAML, PHP ou Python demandant de connaître le C/C++ pour être compris.