Übergeben Sie ein Array an eine Funktion in PowerShell
Dieser Artikel konzentriert sich auf Arrays und die Konvention, ein Array an eine Funktion in PowerShell zu übergeben.
PowerShell-Arrays
PowerShell-Arrays unterscheiden sich nicht von Arrays in Allzweck-Programmiersprachen wie Java, Python, C# usw. Sie können primitive Werte oder Objekte mit fester Größe eines beliebigen Datentyps enthalten.
Syntax:
$intTypeArray = 34, 100, 1000, 45, 455, 1
Um den Typ der Variable $intTypeArray
im folgenden Beispiel zu überprüfen, verwenden wir die eingebaute Methode GetType()
.
Der Basistyp ist erwartungsgemäß System.Array
. Da wir den Datentyp dieses Arrays nicht explizit angegeben haben, hat die PowerShell-Engine es als Array von Objekten erstellt.
Es ist möglich, verschiedene Arten von Elementen in einem einzigen Array zu speichern, wie im folgenden Code gezeigt.
$mixedElementArray = 200, 'stringElement', 12.555, 'hello'
Ausgang:
Wie Sie sehen können, basiert das standardmäßige PowerShell-Array auf dem Typ Object[]
.
In PowerShell wird jeder Wert oder jedes Objekt vom Objekt
geerbt. Jeder Wert oder jedes Objekt kann also einem standardmäßigen PowerShell-Array zugewiesen werden.
Es gibt eine andere Variante von PowerShell-Arrays, die als stark typisierte Arrays bezeichnet werden. Arrays, die als stark typisiert erstellt wurden, können nur einen bestimmten Typ von Sammlung von Elementen enthalten.
Wenn wir ein stark typisiertes Array erstellen, ist es notwendig, die Referenzvariable in einen bestimmten Array-Typ wie int32[]
, string[]
usw. umzuwandeln.
[string[]]$stringTypeArray = 'tesla', 'mecedes', 'audi', 'lambo'
Lassen Sie uns den Typ von $stringTypeArray
überprüfen.
$stringTypeArray.GetType()
Ausgang:
Übergeben Sie ein Array an eine PowerShell-Funktion
Es wird empfohlen, stark typisierte Arrays in Ihren PowerShell-Programmen zu verwenden, da sie über Typsicherheit verfügen. Wann immer Sie ein bereits definiertes Array an eine Funktion übergeben müssen, sollte die folgende Syntax richtig funktionieren.
function <function_identifier>([<data_type>[]]$<parameter_name>)
{
}
Auf diese Weise können Sie ganz einfach ein Array an eine Funktion übergeben. Definieren wir zuerst eine PowerShell-Funktion namens letsPassAnArray
.
function letsPassAnArray([string[]]$stringList) {
foreach ($arrEle in $stringList)
{
Write-Host $arrEle
}
}
In diesem Fall übergeben wir ein Array vom Typ String und drucken jedes Element innerhalb des Arrays mit dem Operator foreach
.
Als Nächstes rufen wir diese Funktion aus dem PowerShell-Skript auf. Stellen Sie sicher, dass Sie auch ein String-Array erstellen.
[string[]]$stringArr = 'Apple', 'Orange', 'Grapes'
letsPassAnArray($stringArr)
Ausgang:
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.