这种泛型类型约束在Swift中意味着什么?

时间:2014-06-11 14:28:02

标签: generics collections swift type-constraints

查看Swift中+=运算符重载的定义,它允许您向集合中添加元素:

/// Append the elements of rhs to lhs
func +=<T, C : Collection where T == T>(inout lhs: ContiguousArrayBuffer<T>, rhs: C)
                                ^^^^^^

T == T约束有什么作用?我们为什么需要它?它看起来像一个微不足道的约束,总是如此。

1 个答案:

答案 0 :(得分:6)

您在Xcode中看到的定义实际上并不是有效的Swift代码。它以某种方式从原始文件中快速生成

我认为T == T部分在减少原始文件时是由生成器完成的。

我试图自己定义一个类似的功能,那里不需要T == T,它实际上有时会触发警告。