PowerShell の関数に配列を渡す
この記事では、配列と、配列を PowerShell の関数に渡す規則に焦点を当てます。
PowerShell 配列
PowerShell 配列は、Java、Python、C# などの汎用プログラミング言語の配列と同じです。固定サイズのプリミティブ値または任意のデータ型のオブジェクトを保持できます。
構文:
$intTypeArray = 34, 100, 1000, 45, 455, 1
次の例で変数 $intTypeArray
の型を確認するには、組み込みの GetType()
メソッドを使用します。
予想どおり、基本型は System.Array
です。 この配列のデータ型を明示的に指定していないため、PowerShell エンジンはこれをオブジェクトの配列として作成しました。
次のコードに示すように、1つの配列にさまざまな型の要素を保持することができます。
$mixedElementArray = 200, 'stringElement', 12.555, 'hello'
出力:
ご覧のとおり、デフォルトの PowerShell 配列は Object[]
型に基づいています。
PowerShell では、すべての値またはオブジェクトは Object
から継承されます。 したがって、任意の値またはオブジェクトを既定の PowerShell 配列に割り当てることができます。
厳密に型指定された配列と呼ばれる、PowerShell 配列の別のバリアントがあります。 厳密に型指定された配列には、特定の型の要素のコレクションのみを含めることができます。
厳密に型指定された配列を作成する場合、参照変数を int32[]
、string[]
などの特定の配列型にキャストする必要があります。
[string[]]$stringTypeArray = 'tesla', 'mecedes', 'audi', 'lambo'
$stringTypeArray
の型を確認してみましょう。
$stringTypeArray.GetType()
出力:
配列を PowerShell 関数に渡す
厳密に型指定された配列は、型の安全性があるため、PowerShell プログラムで使用することをお勧めします。 定義済みの配列を関数に渡す必要がある場合は常に、次の構文が適切に機能するはずです。
function <function_identifier>([<data_type>[]]$<parameter_name>)
{
}
このようにして、配列を関数に簡単に渡すことができます。 まず、letsPassAnArray
という PowerShell 関数を定義しましょう。
function letsPassAnArray([string[]]$stringList) {
foreach ($arrEle in $stringList)
{
Write-Host $arrEle
}
}
この場合、文字列型の配列を渡し、foreach
演算子を使用して配列内の各要素を出力しています。
次に、PowerShell スクリプトからこの関数を呼び出します。 文字列型の配列も必ず作成してください。
[string[]]$stringArr = 'Apple', 'Orange', 'Grapes'
letsPassAnArray($stringArr)
出力:
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.