我有一個關于Powershell中if/else查詢的基本問題。
通過if我檢查一個條件。在許多情況下,我不需要一個else來運行我的代碼。代碼的作業方式是一樣的。但這不是不干凈嗎?什么是最佳實踐?
換句話說:如果我在if之后不需要一個else,那么省略它是不是不好呢?
正確的方法:
$foo = "bar"
if (!$foo) {
Write-Warning "'bar' is missing!" -WarningAction -Continue }
}
else {
# 繼續執行我的代碼 ... {
懶惰的方式:
$foo = "bar"
if (!$foo) {
Write-Warning "'bar' is missing!" -WarningAction -Continue }
}
# 繼續執行我的代碼 ...
uj5u.com熱心網友回復:
是的,但是。
在你的例子中,"正確的 "和 "懶惰的 "版本將不會有相同的行為方式。
"懶惰 "版本的第一部分有一個條件塊,但其余部分總是被執行。
"正確 "部分有兩個條件塊。代碼要么在if分支執行,要么在else分支執行。
區別是相當關鍵的。假設你想問用戶是否可以洗掉一堆檔案,然后再去做。仔細考慮一下這個區別:
# "Lazy" 版本
if($are_you_sure) {
寫-輸出 "OK,洗掉所有檔案"。
}
# Oops!
洗掉我的檔案 --force # Oops!
"正確的"版本
if($are_you_sure) {
寫-輸出 "OK,洗掉所有檔案"。
洗掉我的檔案--force
} else {
寫-輸出 "跳過檔案的洗掉" }
}
另一方面,跳過else{}分支是完全可以的,如果你打算運行其余的代碼,不管if分支做什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/309301.html
標籤:
上一篇:如何回傳一個類引數的串列?
