本文介紹PowerShell自定義函數(shù)在使用時(shí)的最佳實(shí)踐(Best Practices)。包括函數(shù)名的命名、可選參數(shù)、必選參數(shù)等。
PowerShell中的函數(shù)定義可以很簡(jiǎn)單的使用一個(gè)“function <函數(shù)名>{函數(shù)體}”的形式去定義。但微軟推薦創(chuàng)建函數(shù)時(shí)遵循以下實(shí)踐規(guī)則。
1、函數(shù)名。
使用cmdlet的統(tǒng)一命令規(guī)則,即“動(dòng)詞-名詞”的形式。如Write-Host,表示輸出到主機(jī)。如果是獲取一個(gè)列表,不要使用List作為動(dòng)詞,建議使用Get,如Get-ChildItem。名詞部分用一個(gè)有意義的英文單詞,記得使用單數(shù),不要使用名詞的復(fù)數(shù)形式。如果要列出網(wǎng)卡的一個(gè)函數(shù),不要使用ListNetworkCards,而應(yīng)該使用Get-NetworkCard。這就是關(guān)于函數(shù)命名的最佳實(shí)踐。
2、公司前綴。
假定你寫一個(gè)Get-NetworkCard的函數(shù),洪哥也寫了同樣一個(gè)。那是不是很難區(qū)分誰(shuí)是誰(shuí)寫的?所以,微軟建議在函數(shù)名的名詞部分加上公司前綴,而不加公司前綴的函數(shù),我們一般可以理解為微軟發(fā)布的。這個(gè)公司前綴用編寫的兩到三個(gè)字母為宜,比如洪哥函數(shù)名可以命為Get-HGNetworkCard。這里洪哥的前綴用的HG,你的呢?
3、參數(shù)的命名要規(guī)范
參數(shù)要用有意義單詞,不要使用-PC作為參數(shù)名,你可以用-ComputerName取而代之。如果有時(shí)候需要一個(gè)文件路徑作為一個(gè)參數(shù),不要使用-File,因?yàn)橹复鷮?shí)在是太模糊了。可以使用-Path,這樣更明確。雖然沒(méi)有官方給出一個(gè)標(biāo)準(zhǔn)的參數(shù)命名的列表,但我們應(yīng)該參照內(nèi)置(built-in)的cmdlets所用的那些參數(shù)名稱。這樣其他人使用時(shí)才更容易理解,對(duì)不對(duì)?
4、可選參數(shù)
為可選參數(shù)定義一個(gè)默認(rèn)值,這是一個(gè)很好的習(xí)慣。如果用戶不管這個(gè)參數(shù),那么這個(gè)參數(shù)也可以被處于已賦值狀態(tài)。
5、必選參數(shù)
雖然PowerShell中不要求定義函數(shù)參數(shù)時(shí)必須指定數(shù)據(jù)類型,但最佳實(shí)踐要求我們這樣做。如果我們指定了類型,那么用戶的輸入將被強(qiáng)制轉(zhuǎn)換為我們定義的數(shù)據(jù)類型,否則都會(huì)被當(dāng)作字符串來(lái)對(duì)待。
6、寫一些注釋來(lái)作為幫助說(shuō)明
一個(gè)段函數(shù)給其他人,沒(méi)有注釋說(shuō)明,別人很難看懂。即便是自己,不加注釋的代碼,時(shí)間過(guò)得久了,也不一定保證能看得懂,對(duì)不?
關(guān)于PowerShell函數(shù)使用的最佳實(shí)踐(Best Practices),本文就介紹這么多,希望對(duì)您有所幫助,謝謝!
新聞熱點(diǎn)
疑難解答
圖片精選