【发布时间】:2017-05-11 02:41:57
【问题描述】:
A 有很多具有以下签名的函数:
func defilter_up<ReferenceLine:Collection>(line:ReferenceLine) where ReferenceLine.Iterator.Element == UInt8, ReferenceLine.Index == Int
func defilter_average<ReferenceLine:Collection>(line:ReferenceLine) where ReferenceLine.Iterator.Element == UInt8, ReferenceLine.Index == Int
func defilter_sub<ReferenceLine:Collection>(line:ReferenceLine) where ReferenceLine.Iterator.Element == UInt8, ReferenceLine.Index == Int
等等
这些类型约束变得非常冗长和笨拙。有没有一种好方法可以避免重复输入它们,相当于泛型的typealias?
【问题讨论】:
-
最近在这里问了一个类似的问题:stackoverflow.com/questions/43895949/….
-
@MartinR 取消删除这个因为另一个问题似乎是关于用其他泛型类型参数约束泛型
-
是的,这是一个类似的问题,不一样。
-
要么使父作用域泛型,并在那里添加约束,要么等待此功能的发布,这将在关联类型上实现 where 子句github.com/apple/swift-evolution/blob/master/proposals/…
-
@Alexander 是否会涉及声明协议
标签: swift