Что означает T равно T в обобщениях

#swift

#swift

Вопрос:

Я изучаю новый язык swift от Apple, и я посмотрел на модуль Swift,
и увидел, что некоторые универсальные классы имеют следующие инструкции:

 extension ContiguousArray<T> : ArrayType {

    /// Construct an empty ContiguousArray
    init()
    init<S : Sequence where T == T>(_ s: S) 

    /* other statement skipped */
}  
  

Мне интересно, что Where T == T означает?
Я не мог понять это, кто-нибудь может мне помочь?

Комментарии:

1. Я считаю, что это ошибка / странность в том, как генерируются эти поддельные файлы, похожие на заголовки, потому что подобный код на самом деле не компилируется.

2. Большое спасибо, я протестировал это в playground, на самом деле это вообще не компилируется.

Ответ №1:

T — это ссылка на любой тип. Это позволяет динамически задавать тип для чего-либо… как массив. T == T — это все равно, что сказать typeof(Int) == typeof(Int) в obj c