Classes, structures et énumérations à Swift

Mettre ensemble des classes, des structures et énumérations reflète leurs caractéristiques communes à Swift, mais il ya une distinction très importante: les énumérations et les structures sont des types de valeur. Les instances de énumérations et les structures sont copiés quand ils sont passés à une fonction ou affectés à une variable ou constante. Cela signifie que vous pouvez avoir plusieurs copies d'une instance de structure ou une énumération, chacun avec ses propres valeurs qui sont indépendant des autres.

D'autre part, les classes sont des types de référence. Quand ils sont affectés à une variable ou constante ou quand ils sont transmis à une fonction, une référence à l'instance est ce qui se passait. Parce qu'il ya une seule instance qui sous-tend les références passées à des fonctions ou affectés à des variables ou des constantes, un changement dans les valeurs de cette instance sous jacente se reflète dans toutes les copies.

Jetez un oeil à la table, qui vous montre les caractéristiques disponibles dans des classes, des structures et énumérations. La plupart de ces caractéristiques sont communes à la plupart des langages de programmation orientés objet, d'une façon ou d'une autre. Quelques-uns d'entre eux sont légèrement redéfini pour Swift. Ils sont présentés à la gauche de la table, et sont brièvement décrites ici.

Caractéristiques Dans les classes, structures et énumérations
CaractéristiqueClassesOuvrages d'artÉnumérations
InstancesXXX
PropriétésXXpropriétés calculées seulement
MéthodesXXX
IndicesXXX
InitialiseurXXX
ExtensionsXXX
ProtocolesXXX
HéritageX
Type de couléeX
DeinitializersX
ARCX
  • Instances: Un objet qui est une représentation réelle d'une classe dans la plupart des langages orientés objet est appelé exemple. Dans certains langages orientés objet, vous pouvez également utiliser une classe elle-même comme un objet (par exemple, cela est vrai de l'Objective-C). Pour de nombreuses langues, tant que variables déclarées struct ou ENUM, sont désignés par le struct ou ENUM nom.

    En Swift, il est un exemple d'un struct ou ENUM, mais les gens utilisent encore souvent le nom du type (comme dans “maVar est un MyStruct”) plutôt que comme une instance d'une structure particulière (“maVar est un exemple de MyStruct”). Ne pas perdre le sommeil au cours de cette.




  • Propriétés: Vous pouvez déclarer des propriétés qui peuvent soit être stockés ou calculés car ils sont nécessaires. (Énumérations seul soutien propriétés calculé.)

  • Méthodes: Vous pouvez déclarer des méthodes qui peuvent être accessibles via une instance quelconque de ces objets.

  • Indices: Vous pouvez déclarer les indices qui permettent d'accéder éléments d'une instance de type basé sur la logique de l'indice. Les exemples incluent la fourniture de multiples schémas d'indexation pour les objets multi-dimensionnels qui peuvent parfois être accessibles comme si elles étaient des tableaux unidimensionnels et parfois à l'aide de multiples dimensions. Ils sont également utiles dans la gestion des indices non entiers.

  • Initialiseur: Initialiseur vous permettent de configurer les propriétés d'une nouvelle instance.

  • Extensions: Extensions vous permettent d'ajouter des méthodes et des propriétés sans nécessairement avoir le code de l'objet auquel vous les ajoutez. (Propriétés Seulement calculés peuvent être utilisés avec les énumérations.)

  • Protocoles: Vous pouvez définir des méthodes dans un protocole qui doit être mis en œuvre par tout objet qui est conforme à ce protocole.

  • Héritage: Les classes peuvent hériter de l'autre en formant une sous-classe / structure de superclasse. Une classe peut avoir un certain nombre de sous-classes, mais un seul (ou pas) superclasse.

  • Type de casting: Vous pouvez traiter une classe comme son sous-superclasse ou si les conditions le permettent. Ceci est essentiellement un exercice standard dans la logique. UILabel est une sous-classe de UIView- par conséquent, toutes les instances de UILabel sont également des cas de UIView. Tous les cas de UIView sont des instances de UILabel.

  • Deinitializers: Deinitializers vous permettent de nettoyer juste avant une instance de classe est sur le point d'être libérée.

  • ARC: Comptage de référence automatique (ARC) vous permet d'avoir plusieurs instances d'une classe. Lorsque vous passez entre eux autour, ils sont passés par référence, de sorte que, par exemple, si vous avez deux instances de UILabel, la définition du texte pour une UILabel n'a rien à voir avec la définition du texte pour l'autre étiquette.


» » » » Classes, structures et énumérations à Swift