PowerShellによるswap関数(2つの変数の値を交換)のサンプルコード

PowerShell
記事内に広告が含まれています。

PowerShellによるswap関数(2つの変数の値を交換)のサンプルコードを紹介します。

SWAP関数とは

SWAP関数とは「二つの変数の値を入れ替える」基本的な関数です。

ソートアルゴリズムを学ぶ際に、SWAP関数は必ず必要な知識になります。

ここではPowerShellで、2ステップに分けてSWAP関数を作成していきます。

  1. 二つの変数の値を入れ替えるコードを作成する
  2. 上記のコードを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

  • 呼び出し元、呼び出し先とも[ref]を使用することに注意です。
  • 呼び出し元の引数は2つとも丸括弧()で囲む必要があります。

実行結果

Windows PowerShellのターミナルから、上記のSwapFunction.ps1を実行するコマンドを打ちます。

すると以下の通り、data1とdata2の値が入れ変わりました。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows11
2PowerShell5.1
環境一覧

以上です。