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

Jea*_*let 12 generics collections type-constraints swift

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

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

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

Sul*_*han 6

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

我会假设该T == T部件是在减少原始文件时由生成器完成的错误.

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