Opérateur ternaire en PowerShell

Opérateur ternaire en PowerShell

Salut à tous, une petite info pour aujourd’hui sur l’apparition de l’opérateur ternaire en PowerShell. Vous ne savez pas ce que c’est que ça ? On va regarder rapidement !

L’opérateur ternaire, c’est un gros mot pour dire « one-liner pour un if then else« . Par exemple en Python ou en C, on peut écrire (je vous avais déjà fait une comparaison Python vs. PowerShell sur les foreach d’ailleurs):

<condition> ? <condition-si-vrai> : <condition-si-faux>;

C’est un truc qui existe depuis des années et qui me manquait cruellement en PowerShell. L’intérêt c’est surtout la concision et la lisibilité du code, car ça permet d’éviter d’imbriquer trop de « if then else » les uns dans les autres, en particulier quand ceux là ne sont là que pour contrôler un petit trucs sans lien avec l’algorithme.

Un petit exemple où je m’en sert, c’est pour afficher des « hashtables » automatiquement et éviter d’appeler la méthode toString() quand l’entrée est null. :

foreach($key in $ma_hashtable.Keys){
    Write-Host(($null -ne $ma_hashtable.$key) ? ($ma_hashtable.$key).toString() : "")
}

La mauvaise nouvelle c’est que Opérateur ternaire en PowerShell disponible qu’à partir de la version 7. La bonne c’est qu’on peut quand même bricoler des équivalents dans les versions précédentes comme c’est présenté ici ou .

Bon voilà, une brève aujourd’hui, ça me paraissait intéressant de vous montrer cette syntaxe en PowerShell. Codez-bien !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.