Une chose que je trouve assez déroutante est de savoir quels caractères et quelles combinaisons je peux utiliser dans les noms de méthodes et de variables. Par exemple
val #^ = 1 // legal
val # = 1 // illegal
val + = 1 // legal
val &+ = 1 // legal
val &2 = 1 // illegal
val £2 = 1 // legal
val ¬ = 1 // legal
Si je comprends bien, il y a une distinction entre identifiants alphanumériques y identifiants d'opérateurs . Vous pouvez combiner l'un ou l'autre, mais pas les deux, à moins qu'ils ne soient séparés par un trait de soulignement (a). identifiant mixte ).
De Programmation en Scala section 6.10,
Un identifiant d'opérateur est constitué d'un ou plusieurs caractères d'opérateur. Les caractères d'opérateur sont des caractères ASCII imprimables tels que +, :, ?, ~ ou #.
Plus précisément, un caractère opérateur appartient à l'ensemble Unicode de symboles mathématiques (Sm) ou d'autres symboles (So), ou encore aux caractères ASCII à 7 bits qui sont utilisés dans la plupart des pays. ASCII qui ne sont pas des lettres, chiffres, parenthèses, crochets, accolades crochets, accolades, guillemets simples ou doubles, ou un trait de soulignement, un point, un point-virgule, une virgule ou un caractère de cochage arrière.
Il nous est donc interdit d'utiliser ()[]{}'"_.;,
et `
J'ai cherché les symboles mathématiques Unicode sur Wikipedia mais ceux que j'ai trouvés n'incluaient pas +
, :
, ?
etc. Existe-t-il une liste définitive quelque part de ce que sont les caractères des opérateurs ?
Par ailleurs, avez-vous une idée de la raison pour laquelle les opérateurs mathématiques Unicode (plutôt que les symboles) ne sont pas considérés comme des opérateurs ?
3 votes
² me manque particulièrement. Scala promet en quelque sorte que l'on peut faire du code qui utilise des noms de variables (et de méthodes) intelligents. Mais on ne peut pas donner une valeur à une variable x². Caractère illégal.