4

次のようなラムダの引数にデフォルト値を使用したいと思います。

func lambdaArgumentTest() -> String {
  let lambda = { (optString: String = "") -> String in optString }
  return lambda()
}

しかし、コンパイラはこれが不可能であると述べているようです:

Default argument is only permitted for a non-curried function parameter

これに対する良い回避策はありますか?それは将来のバージョンで可能になりますか?

4

2 に答える 2

3

あなたが試みた方法でこれが可能になるかどうかはわかりませんが、代わりにネストされた関数を使用することでそのエラーを回避できるようです。

func lambdaArgumentTest() -> String {
    func lambda(optString: String = "") -> String {
        return optString
    }

    return lambda()
}
于 2014-08-25T14:33:37.083 に答える