如何在返回self的协议中声明泛型函数?

时间:2016-09-13 16:20:02

标签: swift generics swift-protocols type-alias

在Swift中,我有一个协议,表示包装值的对象。我想在该协议中添加一个映射函数,该函数表明某些映射函数将应用于该值以返回该协议的另一个实例。到目前为止,我的协议看起来像这样:

protocol Foo {

    typealias Value

    func flatMap<T>(map: (Value) -> T) -> Self

...

基本上我想让flatMap获取一个在Value中传递的块并返回T并且我希望返回的“Self”专用于T.但这并不完全正确,因为Self是协议的类型。真的我要回归的是“自我”,但我显然不能这样做。

0 个答案:

没有答案