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.SysUtils 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.


A lire aussi

Pourquoi vouloir ajouter ()?: au Pascal alors qu'on a ifthen() ? (27/11/2019)
Quel composant utiliser pour dialoguer sur le port série de l'ordinateur ? (31/05/2019)
Utilisation de processus sous Delphi : fonctionnement de base. (30/07/2018)
Les threads et le blocage des écrans (30/07/2018)
Evitez les plantages causés par une mauvaise utilisation de la librairie System.JSON (18/04/2018)
Plutôt INI ou JSON pour stocker vos paramètres ? (21/07/2017)
Calculer et vérifier un checksum pour dialoguer avec l'extérieur (19/07/2017)
Télécharger simplement un fichier via Internet en tâche de fond (10/07/2017)
Calculer un MD5 sous Delphi (04/07/2017)
Passer un traitement lourd en tâche de fond sans bloquer l'écran (04/06/2017)
Ajouter des chaînes de caractères vides dans un objet JSON (19/05/2017)
Configurer le firewall de McAfee AntiVirus Plus pour utiliser l'App Tethering (28/06/2016)

Membre du programme MVP.
Membre du programme MVP