PowerShellによるswap関数(2つの変数の値を交換)のサンプルコードを紹介します。
SWAP関数とは
SWAP関数とは「二つの変数の値を入れ替える」基本的な関数です。
ソートアルゴリズムを学ぶ際に、SWAP関数は必ず必要な知識になります。
ここではPowerShellで、2ステップに分けてSWAP関数を作成していきます。
- 二つの変数の値を入れ替えるコードを作成する
- 上記のコードをSWAP関数化する
二つの変数の値の入れ替え
まずはシンプルに2つの変数の値を入れ替えます。
関数化は後で実施します。
ソースコード
コマンド
powershell -ExecutionPolicy RemoteSigned -File "swap.ps1"
swap.ps1
$data1 = "あいうえお"
$data2 = "かきくけこ"
Write-Host ("入れ替え前:" + $data1 + "," + $data2)
# 値の入れ替え
$temp = $data1
$data1 = $data2
$data2= $temp
Write-Host ("入れ替え後:" + $data1 + "," + $data2)
Read-Host
実行結果
Windows PowerShellのターミナルから、上記のswap.ps1を実行するコマンドを打ちます。
すると以下の通り、data1とdata2の値が入れ替わりました。
SWAP関数化
次に上記のコードを関数化していきます。
これは参照渡しで実装します。
値渡しで実装してしまうと、swapの戻り値の実装がややこしいです。
(参照渡しだと戻す必要がない)
ソースコード
コマンド
powershell -ExecutionPolicy RemoteSigned -File "SwapFunction.ps1"
SwapFunction.ps1
# swap function
function swap([ref]$data1, [ref]$data2){
$temp = $data1.Value
$data1.Value = $data2.Value
$data2.Value= $temp
}
$data1 = "あいうえお"
$data2 = "かきくけこ"
Write-Host ("関数実行前:" + $data1 + "," + $data2)
swap ([ref]$data1) ([ref]$data2)
Write-Host ("関数実行後:" + $data1 + "," + $data2)
Read-Host
実行結果
Windows PowerShellのターミナルから、上記のSwapFunction.ps1を実行するコマンドを打ちます。
すると以下の通り、data1とdata2の値が入れ変わりました。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows11 |
2 | PowerShell | 5.1 |
以上です。