PowerShell の関数に配列を渡す

Migel Hewage Nimesha 2023年6月21日
  1. PowerShell 配列
  2. 配列を PowerShell 関数に渡す
PowerShell の関数に配列を渡す

この記事では、配列と、配列を PowerShell の関数に渡す規則に焦点を当てます。

PowerShell 配列

PowerShell 配列は、Java、Python、C# などの汎用プログラミング言語の配列と同じです。固定サイズのプリミティブ値または任意のデータ型のオブジェクトを保持できます。

構文:

$intTypeArray = 34, 100, 1000, 45, 455, 1

次の例で変数 $intTypeArray の型を確認するには、組み込みの GetType() メソッドを使用します。

変数の型をチェック1

予想どおり、基本型は System.Array です。 この配列のデータ型を明示的に指定していないため、PowerShell エンジンはこれをオブジェクトの配列として作成しました。

次のコードに示すように、1つの配列にさまざまな型の要素を保持することができます。

$mixedElementArray = 200, 'stringElement', 12.555, 'hello'

出力:

変数の型をチェック2

ご覧のとおり、デフォルトの PowerShell 配列は Object[] 型に基づいています。

PowerShell では、すべての値またはオブジェクトは Object から継承されます。 したがって、任意の値またはオブジェクトを既定の PowerShell 配列に割り当てることができます。

厳密に型指定された配列と呼ばれる、PowerShell 配列の別のバリアントがあります。 厳密に型指定された配列には、特定の型の要素のコレクションのみを含めることができます。

厳密に型指定された配列を作成する場合、参照変数を int32[]string[] などの特定の配列型にキャストする必要があります。

[string[]]$stringTypeArray = 'tesla', 'mecedes', 'audi', 'lambo'

$stringTypeArray の型を確認してみましょう。

$stringTypeArray.GetType()

出力:

変数の型をチェック 3

配列を 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)

出力:

PowerShell 関数に配列を渡す

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

関連記事 - PowerShell Array