我有以下幾點:爲什麼不執行警戒?
guard let _ = myfunction() else {
print("guard just executed")
return false
}
myfunction
返回false,而不是執行保護中的代碼。這不是防守應該執行的正確場景嗎?
的函數被定義爲:
func myfunction() -> Bool?
但僅返回真或假(未自選)。
我有以下幾點:爲什麼不執行警戒?
guard let _ = myfunction() else {
print("guard just executed")
return false
}
myfunction
返回false,而不是執行保護中的代碼。這不是防守應該執行的正確場景嗎?
的函數被定義爲:
func myfunction() -> Bool?
但僅返回真或假(未自選)。
guard let
用來包裹可選的值,使你的情況guard let _ = myfunction() else {
總是返回true,如果你還需要檢查(比較),它的價值,你需要添加一個條件與guard
聲明,
這樣的方式分開。
guard let flag = myfunction(), flag else {
print("guard just executed")
return false
}
let _ = myfunction()
計算爲true
如果myfunction()
結果不是零不管它返回Int?
,String?
,Bool?
等。如果結果不是零,沒關係展開的Bool?
值是否true
或false
以同樣的方式,將無關緊要如果Int?
的展開值爲5,37或2089
guard let _ = myfunction() else {}
落入的保護條件僅當結果3210是零。
guard let
需要一個可選的參數,如果你只需要檢查一個布爾結果還有一個更簡單的語法
guard myfunction() else { ...
如果我回到非可選布爾值,是不是真的需要後衛? – 4thSpace
@ 4thSpace是的,完全隊友:) –
@LeoDabus感謝「警衛案讓」的建議。 –