assert
Swiftでを書いているときに、最初の値が次のように入力されていることに気付きました
@autoclosure() -> Bool
をT
介して存在をテストするために、ジェネリック値を返すオーバーロードされたメソッドを使用しLogicValue
protocol
ます。
しかし、目の前の質問に厳密に固執します。@autoclosure
を返すが必要なようですBool
。
パラメータをとらずにBoolを返す実際のクロージャを書くことは機能しません、それは私がそれをコンパイルするためにクロージャを呼び出すことを望みます、それはそうです:
assert({() -> Bool in return false}(), "No user has been set", file: __FILE__, line: __LINE__)
ただし、ブール値を渡すだけで機能します。
assert(false, "No user has been set", file: __FILE__, line: __LINE__)
それで、何が起こっているのですか?なに@autoclosure
?
編集: @auto_closure
名前が変更されました@autoclosure
f({2 >1}())