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 … Lire la suite