PowerShellにおける関数のオーバーロードの例
2022-02-04 21:05:01
PowerShell では、Function キーワードを使用して、次のような関数を定義することができます。
Function Get-Data {
Param (
[int] $data = -1
)
return $data;
}
Get-Dataという名前のこの関数は、int型のパラメータ$dataを受け取り、それを直接返します。では、文字列型を受け取るGet-Data関数も必要な場合はどうでしょうか?このアプローチはかなり奇妙で、少なくともC++のような伝統的な言語とは異なっています。
PowerShellでオーバーロード関数を定義するには、以下のようにパラメータが所属するパラメータセットを指定する必要があります。
Function global:Get-Data {
Param (
[Parameter(ParameterSetName="ByInt", Position=0)] [int] $intData,
[Parameter(ParameterSetName="BySwitch", Position=0)] [switch] $boolData,
[Parameter(ParameterSetName="ByArray", Position=0)] [string[]] $arrayData
)
Write-Host $PsCmdlet.ParameterSetName
}
ParameterSetNameは各パラメータが属するParameterSetを指定し、Positionは匿名パラメータであることを示すことが容易に理解できる。そして、$PsCmdlet.ParameterSetNameは、現在使用されているパラメータセットを示します。
PS > Get-Data 1
ByInt
PS > Get-Data "a"
ByArray
PS > Get-Data -boolData
BySwitch
PowerShellの関数引数の詳細については TechNetの関連プレゼンテーション または、PowerShell コンソールで次のコマンドを実行します: help about_Functions_Advanced_Parameters
関連
-
nugetパッケージのファイル消失問題を解決するためのpowershellスクリプトを追加しました。
-
PowerShellでは配列のフィルタリングにmatch演算子を使用する
-
What-ifのためのPowershellエラー処理
-
スクリプトの記述と実行のためのPowershellの実装
-
PowerShellのエラートラッピングの話
-
Powershellスクリプトの4種類の実行権限についてご紹介します。
-
PowerShellでプログラム的にIEのキャッシュを空にする
-
PowerShellで文字列を別行動で表示する2つの方法
-
Powershell ISE 抽象構文木 プログラミング例
-
PowerShellでWAVオーディオファイルを再生する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Ubuntu PowerShell詳解(初心者必見チュートリアル)
-
SQL SERVERデータベースに接続して操作するためのPowerShellコード
-
PowerShellでパフォーマンスカウンターのバイナリファイル(.blg)の記録を読み込んで計算結果をまとめる
-
PowerShell 4.0の新コマンドを簡単に紹介します。
-
PowerShellパイプラインチュートリアル(パイプラインの例)
-
PowerShell文字列オブジェクトのメソッド概要
-
Powershellディレクトリフォルダ管理権限継承・割り当て方法
-
PowerShell DSC コンポーネント xExchange をリリースしました。
-
PowerShellでWPFを呼び出してクールなウィンドウを生成する例
-
ネットワーク上のホストの種類を検出するPowerShellスクリプト