Comment passer un tableau à une fonction dans PowerShell

Dans de nombreux langages de programmation, y compris PowerShell, les tableaux sont une structure de données fondamentale. Ils vous permettent de stocker efficacement des collections de valeurs, en faisant un outil crucial pour diverses tâches dans le script PowerShell.
Cet article se concentrera sur les tableaux et la convention de passage d’un tableau à une fonction dans PowerShell.
Tableaux PowerShell
Les tableaux PowerShell ne diffèrent pas de ces tableaux dans les langages de programmation à usage général comme Java, Python, C#, etc. Ils offrent la capacité de contenir des collections de valeurs ou d’objets de tout type de données de taille fixe.
Syntaxe :
$intTypeArray = 34, 100, 1000, 45, 455, 1
Pour vérifier le type de la variable $intTypeArray
dans l’exemple suivant, nous utiliserons la méthode intégrée GetType()
.
Comme prévu, le type de base est System.Array
. Comme nous n’avons pas spécifiquement indiqué le type de données de ce tableau, le moteur PowerShell l’a créé comme un tableau d’objets.
Il est intéressant de noter que les tableaux PowerShell peuvent accueillir divers types d’éléments dans un seul tableau, comme l’illustre l’extrait de code ci-dessous.
Code :
$mixedElementArray = 200, 'stringElement', 12.555, 'hello'
Sortie :
Comme vous pouvez le voir, le tableau PowerShell par défaut est basé sur le type Object[]
.
Dans PowerShell, chaque valeur ou objet hérite de Object
. Ainsi, toute valeur ou objet est assignable à un tableau PowerShell par défaut.
En plus des tableaux par défaut, PowerShell propose une variante connue sous le nom de tableaux fortement typés. Ces tableaux accueillent exclusivement des collections d’un type particulier de données.
Lorsque nous créons un tableau fortement typé, il est nécessaire de convertir la variable de référence en un type de tableau spécifique tel que int32[]
, string[]
, etc.
[string[]]$stringTypeArray = 'tesla', 'mecedes', 'audi', 'lambo'
Vérifions le type de $stringTypeArray
.
$stringTypeArray.GetType()
Sortie :
Passer un tableau à une fonction PowerShell
Dans PowerShell, il est recommandé d’utiliser des tableaux fortement typés dans vos programmes PowerShell car cela garantit la sécurité de type. Chaque fois que vous devez passer un tableau déjà défini à une fonction, la syntaxe suivante devrait fonctionner correctement.
Syntaxe :
function <function_identifier>([<data_type>[]]$<parameter_name>)
{
}
Dans cette syntaxe :
function
: Désigne le mot-clé utilisé pour initier la définition d’une fonction dans PowerShell.<function_name>
: Représente le nom de la fonction.[<data_type>[]]
: Spécifie le type de données du paramètre, vous permettant de travailler avec des tableaux du type de données spécifié à l’intérieur de la fonction.$<parameter_name>
: Sert de nom au paramètre à l’intérieur de la fonction.
De cette manière, vous pouvez facilement passer un tableau à la fonction. Pour illustrer cela, définissons d’abord une fonction PowerShell appelée letsPassAnArray
.
Code :
function letsPassAnArray([string[]]$stringList) {
foreach ($arrEle in $stringList) {
Write-Host $arrEle
}
}
Dans cet exemple, nous définissons une fonction PowerShell appelée letsPassAnArray
avec un paramètre nommé $stringList
. Ensuite, nous commençons une boucle foreach
pour itérer à travers chaque élément ($arrEle
) du tableau $stringList
.
À l’intérieur de la boucle, nous écrivons chaque élément du tableau dans la console. Pour tester la fonction, nous créons un tableau de chaînes nommé $stringArr
avec des éléments 'Apple'
, 'Orange'
, et 'Grapes'
.
Code :
[string[]]$stringArr = 'Apple', 'Orange', 'Grapes'
letsPassAnArray($stringArr)
Enfin, nous appelons la fonction letsPassAnArray
et passons le tableau $stringArr
comme argument, ce qui pousse la fonction à itérer et à imprimer chaque élément du tableau.
Sortie :
Conclusion
Dans PowerShell, comprendre les tableaux et comment les passer à des fonctions est essentiel pour un script efficace et organisé. Que vous travailliez avec des tableaux génériques pouvant contenir divers types de données ou des tableaux fortement typés pour la sécurité des types, maîtriser la manipulation des tableaux vous permettra d’écrire des scripts PowerShell plus efficaces.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.