J'ai du mal à comprendre ce que tu essaies de montrer/calculer.
Il y a d'abord pour moi les langages dans le "+" n'est que l'opérateur d'addition des nombres. Ceux là, doivent renvoyer une erreur de type : Shell, Php, Perl, Elm...
Il y a certains langages dont le "+" est la fois l'opérateur d'addition des nombres et l'opérateur de concaténation des chaînes de caractères.
Parmi ceux là, il y a ceux qui se basent seulement sur le type de l'opérande de gauche pour savoir s'il faut réaliser une addition ou une concaténation.
Ceux-là doivent normalement lever une erreur : Ruby, Python...
Ceux qui sont regardent le type des deux opérandes pour savoir s'il faut réaliser une addition ou une concaténation et qui sont capable de faire du trans-typage doivent renvoyer la chaîne "13a" : Java, Javascript, Scala...
Et puis, il y a le C, qui utilise le "+" comme opérateur d'addition de pointeur avec un nombre, et il sort une réponse presque logique : "a".
Donc en gros, si j'ai tout bien compris, tu montres qu'il faut connaître la syntaxe et la grammaire d'un langage pour l'utiliser,et qu'il y a des mauvais élèves pour expliquer ou montrer une erreur, c'est bien cela ?
Si tu voulais comparer les messages d'erreur, n'aurait-il pas mieux utiliser un opérateur possédant moins de signification ? Par exemple "/" ou "*" ?
# Le but ?
Posté par TilK . En réponse au journal Un print(1 + "3a"), ça nous inspire comment ?. Évalué à 6.
Salut,
J'ai du mal à comprendre ce que tu essaies de montrer/calculer.
Il y a d'abord pour moi les langages dans le "+" n'est que l'opérateur d'addition des nombres. Ceux là, doivent renvoyer une erreur de type : Shell, Php, Perl, Elm...
Il y a certains langages dont le "+" est la fois l'opérateur d'addition des nombres et l'opérateur de concaténation des chaînes de caractères.
Parmi ceux là, il y a ceux qui se basent seulement sur le type de l'opérande de gauche pour savoir s'il faut réaliser une addition ou une concaténation.
Ceux-là doivent normalement lever une erreur : Ruby, Python...
Ceux qui sont regardent le type des deux opérandes pour savoir s'il faut réaliser une addition ou une concaténation et qui sont capable de faire du trans-typage doivent renvoyer la chaîne "13a" : Java, Javascript, Scala...
Et puis, il y a le C, qui utilise le "+" comme opérateur d'addition de pointeur avec un nombre, et il sort une réponse presque logique : "a".
Donc en gros, si j'ai tout bien compris, tu montres qu'il faut connaître la syntaxe et la grammaire d'un langage pour l'utiliser,et qu'il y a des mauvais élèves pour expliquer ou montrer une erreur, c'est bien cela ?
Si tu voulais comparer les messages d'erreur, n'aurait-il pas mieux utiliser un opérateur possédant moins de signification ? Par exemple "/" ou "*" ?