的「」使用不同的PowerShell中比在其他編程語言。這是數組構造函數。
(1,2,3).GetType() # System.Object[]
(,'element').GetType() # System.Object[]
因爲你還沒有指定你的參數的數據類型PowerShell的假設它在處理普通的舊System.Objects(所有類的父類)。然後它接受數組並將其分配給第一個輸入參數,因爲它是該行中唯一的參數。它可以這樣做,因爲一個數組通過擴展也是一個System.Object。
另外,建議不要老synthax定義功能了:
function foo ($first, $second) {}
在寫這一點,PowerShell的解釋會在內部轉換成一個先進的功能,這一點:
function foo {
PARAM(
[Parameter(Position=1)]
[object]$first,
[Parameter(Position=2)]
[object]$second
)
BEGIN { <# Do stuff here #> }
PROCESS { <# Do stuff here #> }
END { <# Do stuff here #> }
}
foo -first 'first' -second 'second'
foo 'first' 'second'
造成不必要的開銷。
我希望清除一點:)
對不起,這個意外的編輯。我討厭如何隨機似乎重新排列答案。 –