2016-12-13 25 views
1

私は、クロージャを作成するためにジェネリックなタイプアリアスを使用しています。しかし、私は有限数のジェネリックパラメータに限定されています。バリディックパラメータを持つ一般的なタイプアリア

typealias Closure<T> = (T) -> Void 

これは動作します:

func foo(closure: Closure<(String, Bool)>) {} 

これません:

func foo(closure: Closure<String, Bool>) {} 

ジェネリック可変長パラメータを作成する方法を?

答えて

2

説明しているのはバリデックではありません(Closure<String, ...>、スウィフトにはありません)。あなたが描いていることは、Swiftの "splatted tuples"にとても近いです。 (スウィフトは、それを "スプラットタイプのパラメータ"とか、それに沿ったものと呼んでいます)。しかし、スウィフトにはこの機能がありません。これを使用するために必要な関連機能(「スプラット付きタプル」)は最近削除されたため、作成することができたとしても、呼び出す方法がないため、ほとんど何もできませんでした閉鎖

+0

私はこれについての提案を見ましたが、レビューを待っています。 https://github.com/austinzheng/swift-evolution/blob/az-variadic-generics/proposals/XXXX-variadic-generics.md – efremidze

関連する問題