Что означает это ограничение общего типа в Swift?
Посмотрите на определение перегрузки оператора +=
в Swift, которое позволяет добавлять элементы в коллекцию:
/// Append the elements of rhs to lhs
func +=<T, C : Collection where T == T>(inout lhs: ContiguousArrayBuffer<T>, rhs: C)
^^^^^^
Что делает ограничение T == T
? Зачем нам это нужно здесь? Это похоже на тривиальное ограничение, которое всегда верно.
Ответы
Ответ 1
Определения, которые вы видите в Xcode, на самом деле не являются действительным кодом Swift. Это как-то генерируется "на лету" из исходных файлов.
Я бы предположил, что часть T == T
является ошибкой, выполняемой генератором при уменьшении исходных файлов.
Я попытался определить одну и ту же функцию самостоятельно, и T == T
там не нужен, она на самом деле иногда вызывает предупреждение.