2016-03-11 1 views
0

Je suis novice dans le domaine de Swift et j'apprends le concept de tableau. J'ai vu le code ci-dessous de "langage de programmation rapide 2.1".impossible de trouver la fonction enumerate() dans la référence de la bibliothèque standard Swift

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

Je veux lire un peu plus sur la enumerate() func donc je regardais le Apple developer's page on Array, cependant, je ne pouvais pas trouver un nom func enumerate() sur cette page. Est-ce que je regarde au mauvais endroit ou y a-t-il quelque chose qui me manque? Coudl quelqu'un s'il vous plaît me donner un coup de main? Merci d'avance pour votre aide!

Répondre

4

Lorsque vous rencontrez une fonction ou une méthode de bibliothèque standard Swift sur laquelle vous ne trouvez pas de documentation, cliquez dessus dans Xcode en maintenant la touche Commande enfoncée. Cela vous amène à sa définition, qui dans ce cas est

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> 
} 

Ce que les états ci-dessus est que enumerate() vous donne de nouveau un tuple pour chaque valeur de votre collection, avec le premier élément du tuple étant l'indice de l'élément actuel et le second étant la valeur de cet élément.

+0

Merci beaucoup pour le pourboire! btw, cela vous dérange si je demande, pourquoi certaines fonctions ou méthodes ne sont pas inclus dans la documentation? –

+1

La méthode 'enumerate' [est définie par' SequenceType'] (https://developer.apple.com/library/ios/documentation/Swift/Reference/Swift_SequenceType_Protocol/index.html#//apple_ref/swift/intfm/SequenceType/s: FeRq_Ss12SequenceType_SsS_9enumerateuRq_S__Fq_FT_GVSs17EnumerateSequenceq__), un protocole que 'Array' adopte (indirectement, en adoptant' CollectionType'). Les docs Apple pour un type ne montrent pas toutes les méthodes qu'il acquiert via les superclasses ou la conformité au protocole, donc pour voir toutes les méthodes sur un type, vous devez cliquer sur les liens "Hérite de" et "Conforme à". – rickster