Pourquoi vouloir ajouter ()?: au Pascal alors qu'on a ifthen() ?

Il y a une demande qui est régulièrement botée en touche sur QA : l'ajout de la syntaxe suivante au Pascal.

variable := (condition)?valeurSiVrai:valeurSiFaux;

Dans la RTL nous avons déjà de quoi écrire la même chose sous forme de la fonction ifthen().

Elle prend en paramètre la conditon (en fait un booléen) et retourne l'un des deux autres paramètres selon si elle est vraie ou fausse. Par contre les valeurs à retourner sont du même type, ce qui est cohérent avec les usages du Pascal.

Plusieurs implémentations de ifthen() sont disponibles dans les unités System.StrUtils et System.Math selon les valeurs retournées. N'hésitez pas à vous en servir si vous voulez "économiser" une instruction "if" lorsque vous écrivez du code, lors d'une concaténation de chaînes conditionnées ou lors d'un calcul complexe.

Par contre méfiez-vous : si vous en mettez des tartines le code ne sera pas des plus lisibles ou maintenable.


Mug Toucan DX dans la baie de RioMug Toucan DX dans la baie de Rio