16Fermer18
flankerLe 21/12/2014 à 14:39
Je trouve que Scala a fait quelques choix vraiment curieux.

Pour ne faire aucune exception de syntaxe pour les opérateurs classiques (+, *, …), ils ont établis quelques règles :

* *, +, -, … sont des noms de méthode comme les autres
* quand une méthode ne prend qu'un argument, on peut supprimer . et () (au lieu d'écrire instance.methode(argument), on peut écrire instance methode argument ).

Comme ça, on a instance * argument == instance.*(argument). Ok, mais « instance methode argument » n'est pas très lisible.


Les [] sont réservés pour les types. Bon, pourquoi pas, mais c'était quand même bien pratique pour les tableaux. On se retrouve à devoir écrire tableau(index) = valeur, qui a la même syntaxe qu'un appel de fonction… À nouveau, je trouve ça moins lisible sad Un autre truc qui manque (et qui est purement du sucre syntaxique), c'est le slicing à la Python.
On se retrouve à devoir faire
val l = tableau.length
val soustableau = tableau.slice(l - 5, l - 1)
au lieu de soustableau = tableau[-5; -1]


mais bon, ça reste mieux que Java grin