在Swift中,我有一个协议,表示包装值的对象。我想在该协议中添加一个映射函数,该函数表明某些映射函数将应用于该值以返回该协议的另一个实例。到目前为止,我的协议看起来像这样:
protocol Foo {
typealias Value
func flatMap<T>(map: (Value) -> T) -> Self
...
基本上我想让flatMap获取一个在Value中传递的块并返回T并且我希望返回的“Self”专用于T.但这并不完全正确,因为Self是协议的类型。真的我要回归的是“自我”,但我显然不能这样做。