313Fermer315
flankerLe 02/10/2015 à 19:11
Nil (./312) :
squalyl (./311) :
./308 ca aurait du sens si ils avaient écrit if(confirm(...) == something)

mais la ils font directement if(confirm(...)) donc la conversion implicite en bool est déja utilisée, ca ne fait aucun sens de vouloir l'éviter pour le retour de cette fonction.
ca ne ferait même pas de sens si la fonction appelante avait absolument besoin d'un bool. Puisque la conversion en bool se ferait au moment ou l'expression passée est évaluée, dans l'appelante.
Pas forcément...
Exemple de base : confirm() peut très bien se mettre à envoyer
0 = timeout
1 = ok
-1 = nok
-2 = interruption par un événement extérieur
2 = validation par un événement extérieur
S'il y a une évolution des données de sortie de confirm(), tu as juste à changer if (confirm()) en if (confirm() > 0), ce qui te permet d'éviter d'avoir à te repalucher tout ton code.

Enfin, dans ce cas, chaque programme est obligé de refaire une surcouche à toutes les API qu'il utilise. Puis pour éviter la répétition de code commun, on mettrait ce code dans une bibliothèque séparée, qu'il faudrait à nouveau mettre dans une surcouche pour être sûr qu'il n'y a pas de problème en cas de changement d'API de la surcouche …