2017-07-20 22 views
0

我是Powershell的新手,但我很好奇在Powershell中創建默認變量的最佳做法是什麼。這是我參考的example。如果你只是想初始化默認變量,而無意傳遞任何參數到函數。哪一個更好的方法是1號或2號,或者都不是。 :)在Powershell中創建默認值的最佳做法

1.

function test 
     { 
      param ([int]$x = 5,[int]$y = 14) 
      $x * $y 
     } 

2.

function test 
     { 
      [int]$x = 5 
      [int]$y = 14 
      $x * $y 
     } 
+2

_「想要初始化默認變量,而不打算傳遞任何參數」_ - 這回答自己,如在**#1 **中,您正在定義要傳遞的參數,這是您不想要的。所以它是**#2 **。您可以進一步簡化,因爲PowerShell是[鬆散類型的語言](https://www.computerhope.com/jargon/l/looslang.htm):'$ x = 5'。 – gms0ulman

+0

@ gms0ulman感謝您的信息:) – booyah

+1

@ gms0ulman鬆散類型也可能意味着有時被解釋爲字符串和奇怪的行爲。嚴格鍵入參數是一種好的做法 – TheIncorrigible1

回答

3

這只是取決於你的使用情況。如果你真的從來沒有打算改變這些變量,#2是正確的。

我想你只需要問自己未來的用例可能是什麼。會改變數值會破壞你的功能嗎?提供參數的能力是非常有用的,如果不是現在,也許在將來。

基本上,如果你使用的變量爲FINAL,#2是好的,但在所有其他情況下,我會說#1更正確。

+0

感謝您的幫助:) – booyah

-1

如果你的目的是要帶參數給你的函數,使用Param()。默認情況下,未定義值將$Null

Function Test 
{ 
Param(
    [Int] 
    $X = 5, 
    [Int] 
    $Y = 14 
) 
    Return $X * $Y 
} 
Function Test2 
{ 
    $X=5; $Y=14 
    $X * $Y 
} 
> Test2 
>> 70 
> Test 
>> 70 
> Test 5 20 
>> 100 
+0

我的意圖不是將任何參數傳遞給函數,情況如何? – booyah