2

ジェネリック型をクロージャーに制限するにはどうすればよいですか? このような:

struct Closure<T where T:closure> {
  var closure:T
  init(_ c:T) { closure = c }
}
4

1 に答える 1

3

できないと思います。代わりに、一般的なプレースホルダーを使用して、クロージャーの入力引数と戻り引数を制限します。これは同じことになります。

struct Closure<T,U> {
    var closure: T->U
    init(_ c: T->U) { closure = c }
}

let c = Closure { $0 % 2 == 0 }
// c will be a Closure<Int,Bool>
于 2015-07-23T08:43:32.397 に答える