1. ホーム
  2. swift

[解決済み] swiftでオプションのクロージャを作るにはどうしたらいいですか?

2023-01-06 13:17:51

質問

私は、オプションのクロージャを取るSwiftの引数を宣言しようとしています。私が宣言した関数は、次のようになります。

class Promise {

 func then(onFulfilled: ()->(), onReject: ()->()?){       
    if let callableRjector = onReject {
      // do stuff! 
    }
 }

}

しかし、Swift は "if let" が宣言されているところで、 "Bound value in a conditional must be an Optional type" と文句を言っています。

どのように解決するのでしょうか?

オプションのクロージャを括弧で囲む必要があります。こうすることで ? 演算子を適切にスコープします。

func then(onFulfilled: ()->(), onReject: (()->())?){       
    if let callableRjector = onReject {
      // do stuff! 
    }
 }