Sommaire

Affectation manuelle de types et transtypage

Que les inconditionnels du « typage fort » se rassurent, il existe une alternative au typage automatique afin de rester maître du typage des variables. Pour ce faire, il nous faut définir le type souhaité entre crochets et placer ce dernier devant le nom de la variable, comme par exemple :

PS > [int]$var = 12

En écrivant cela, vous êtes sûr que la variable $var sera du type entier. Mais il n’y a aucune différence entre $var = 12 et [int]$var = 12, nous direz-vous ! Certes, pour l’instant l’intérêt est minime, mais lorsque vous serez de grands « powershelleurs » et que vos scripts commenceront à prendre de l’ampleur, le fait de déclarer vos variables avec un type associé rendra votre travail beaucoup plus compréhensible pour les autres mais permettra surtout d’éviter qu’une valeur d’un type différent ne lui soit affectée par erreur.

Exemple

PS > [int]$nombre = Read-Host ’Entrez un nombre ’  
Entrez un nombre : cent 
 
Cannot convert value "cent" to type "System.Int32".  
Error: "Input string was not in a correct format."

Dans l’exemple ci-dessus, le texte saisi cent n’a pas été reconnu comme un nombre entier, il est donc rejeté par l’interpréteur de commandes. Si nous n’avions pas précisé ...