【发布时间】:2016-05-13 09:16:26
【问题描述】:
我正在尝试编写泛型类型的扩展,但由于某些原因无法正常工作。
我有通用枚举:
public enum ResponseResult<Result, Error> {
case Success(result: Result)
case Failure(error: Error?)
}
我想为这个枚举写一些扩展,例如用枚举泛型参数创建另一个泛型类:
extension ResponseResult {
var response: Response<T> {
return Response(value: self.value)
}
}
T - 是来自 ResponseResult 类的“Result”通用参数。
但我不明白如何在扩展中获取泛型参数。
【问题讨论】:
-
不清楚你需要
T做什么,为什么会在那里? -
@Pascal 是 Response 类的通用参数。我正在尝试编写简单的代码示例,而不是放置所有代码
-
所以你只想在扩展中使用
ResponseResult枚举中的Result泛型参数?您是否尝试过只输入Result而不是T?原始声明中的泛型参数应该在扩展中可用。 -
啊哈。是的,那么很明显,就像其他人已经回复的那样,您的意思是
Result。 :)
标签: ios swift generics enums extension-methods