これら 2 つの配列作成ステートメントに違いはありますか? では、配列を作成するときに「@」記号はオプションですか?
$a = "This", "Is", "a", "cat"
$a.GetType()
$a | gm
$a = @("This", "Is", "a", "cat")
$a.GetType()
$a | gm
これら 2 つの配列作成ステートメントに違いはありますか? では、配列を作成するときに「@」記号はオプションですか?
$a = "This", "Is", "a", "cat"
$a.GetType()
$a | gm
$a = @("This", "Is", "a", "cat")
$a.GetType()
$a | gm
$a = @() # declare an empty array.
$a = @(mysingleitem) # declare an array with a single element
それ以外の場合はオプションです。
これら 2 つの配列作成ステートメントに違いはありますか?
100% 確信はありませんが (PowerShell の根性に依存します)、違いは次のようになる可能性があります:"This", "Is", "a", "cat"配列を作成します。@("This", "Is", "a", "cat")同じ配列を作成し、演算子 @() をそれに適用します (この特定のケースでは明らかに冗長な操作です) 。
たとえば、このプロファイラーを使用すると、2 番目の式がかなり遅い (14% 程度) ことがわかります。そのため、私の推測は正しいかもしれません。理想的には、PowerShell コード インタープリターはこれら 2 つの式を同じように処理できますが、おそらくそうではありません。
ヘルプ トピックも参照してください (最後、演算子@()とについて,)
help about_operators