これがクロージャー付きの私の関数宣言です
func isTextValid(input: String, completion: (result: Bool) -> ()) {
if input == "Hello" {
completion(result: true)
}
else {
completion(result: false)
}
}
このように以下の関数を呼び出すと、「false」である正しい結果が出力されず、代わりに「(0要素)」が出力されます
isTextValid("hi", { (result) -> () in
println(result)
})
しかし、以下のようなコードを書くと、問題なく動作します。
isTextValid("hi", { (result) -> () in
if result == false {
println(result)
}
})
// また
isTextValid("hi", { (result) -> () in
if result == false {
}
println(result)
})
私は Swift プログラミング言語の初心者で、最近 Swift 言語を試していますが、構文とクロージャの使用に完全に困惑しています。これらの構文の両方の違いは何か、2 番目の構文では正常に機能するが、最初の構文では正常に機能しない理由を説明してください。
前もって感謝します。ハッピーコーディング。