не удалось найти функцию enumerate() в справочнике по стандартной библиотеке Swift

Я новичок в Swift и изучаю концепцию массива. Я видел код ниже из «быстрого языка программирования 2.1».

var array = [1,2,3,4,5]
for (index, value) in array.enumerate() {
    print("\(value) at index \(index)")
}

Я хочу прочитать немного больше о функции enumerate(), поэтому я просмотрел страница разработчика Apple в Array, однако мне не удалось найти на этой странице функцию с именем enumerate(). Я смотрю не туда или я что-то упускаю? Может кто-нибудь, пожалуйста, помогите мне? Заранее благодарю за любую помощь!


person Community    schedule 11.03.2016    source источник


Ответы (1)


Когда вы сталкиваетесь с функцией или методом стандартной библиотеки Swift, для которого вы не можете найти документацию, нажмите на нее в Xcode, удерживая нажатой клавишу Command. Это приведет вас к его определению, которое в данном случае

extension SequenceType {
    /// Return a lazy `SequenceType` containing pairs (*n*, *x*), where
    /// *n*s are consecutive `Int`s starting at zero, and *x*s are
    /// the elements of `base`:
    ///
    ///     > for (n, c) in "Swift".characters.enumerate() {
    ///         print("\(n): '\(c)'")
    ///       }
    ///     0: 'S'
    ///     1: 'w'
    ///     2: 'i'
    ///     3: 'f'
    ///     4: 't'
    @warn_unused_result
    public func enumerate() -> EnumerateSequence<Self>
}

Вышеизложенное гласит, что enumerate() возвращает вам кортеж для каждого значения в вашей коллекции, причем первый элемент в кортеже является индексом текущего элемента, а второй - значением этого элемента.

person Brad Larson    schedule 11.03.2016
comment
Большое спасибо за совет! Кстати, вы не возражаете, если я спрошу, почему некоторые функции или методы не включены в документацию? - person ; 11.03.2016
comment
Метод enumerate определяется SequenceType, протоколом, который принимает Array (косвенно, путем принятия CollectionType). Документы Apple для типа не показывают все методы, которые он получает благодаря суперклассам или соответствию протоколу, поэтому, чтобы увидеть все методы для типа, вы должны щелкнуть ссылки «Наследует от» и «Соответствует». - person rickster; 11.03.2016