function の返り値に配列を指定しても、思い通りにならない事例
返り値は空配列・その1
function func1
{
$Response = @()
$Response
}
$r = func1
write-host $r.GetType()
write-host $r.Length
返り値は空配列・その2
function func2
{
$Response = @()
,$Response
}
$r = func2
write-host $r.GetType()
write-host $r.Length
System.Object[]
0
返り値は配列で、要素は 1 つだけ・その1
function func3
{
$Response = @("abc")
$Response
}
$r = func3
write-host $r.GetType()
write-host $r.Length
System.String
3
返り値は配列で、要素は 1 つだけ・その2
function func4
{
$Response = @("abc")
,$Response
}
$r = func4
write-host $r.GetType()
write-host $r.Length
System.Object[]
1
まとめると
function を呼びだした側が受け取ったものは…
返り値の記述 | コンマ無し | コンマ有 | |
---|---|---|---|
function 内での配列長 | |||
0 | $null | @() | |
1 | "abc" | @("abc") |