Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 757

要素一つのジャグ配列とWrite-Output

$
0
0
powershellで配列を作成していたら変な挙動をしたのでメモ。 まずは下記のようにジャグ配列を作る。 newArray1.ps1 # 要素が一つのジャグ配列 $new = @() $add = 1,2,3 $new += ,$add # $newの中身 $new.Count #=> 1 $new #=> 1,2,3 powershellは配列の構造が分かりにくいけど中身はこんな感じになっている。 $new = @(@(1,2,3)) 次に上のコードを関数にしてみる。 newArray2.ps1 function New-Array{ # 要素が一つのジャグ配列を作成 $new = @() $add = 1,2,3 $new += ,$add return $new } # New-Arrayでジャグ配列を作成 $array = New-Array # $arrayの中身 $array.Count #=> 1ではなく3が返る $array #=> 1,2,3 関数の戻り値として扱うとジャグ配列がただの配列になってしまう。 $array = @(1,2,3) returnをWrite-Output に変更するとうまくいくみたい。 newArray3.ps1 function New-Array{ $new = @() $add = 1,2,3 $new += ,$add $new += ,$add Write-Output $new -NoEnumerate } # New-Arrayで多段階配列を作成 $array = New-Array # $arrayの中身 $array.Count #=> 1が返る $array #=> 1,2,3 help Write-Output -example の最後の例で理由が確認できる。 関数の戻り値 => パイプライン経由の値ということなのかな?

Viewing all articles
Browse latest Browse all 757

Trending Articles