Énumérations Swift

Lorsque vous ajoutez les fonctionnalités de Swift, énumérations deviennent beaucoup plus de classe # 8208-like. Ils ne sont plus seulement des collections de constantes parce qu'ils peuvent maintenant avoir leurs propres propriétés et fonctions.

Voici ce que l'énumération Swift peut ressembler à:

énumération Parkplace: Int {case parc, piscine, bar, piste}

Avec un peu de respacing, cependant, cela peut ressembler beaucoup à un classique C ENUM:

énumération Parkplace: Int {case parkcase poolcase barscase piste}

Vous pouvez attribuer une valeur d'énumération à une variable à Swift en utilisant le code suivant:

laissez Myplace = ParkPlace.park



Si vous incluez cette mission et puis essayez d'imprimer chez moi dans une aire de jeux, vous verrez la valeur “ Enum valeur ” à droite.

Reportez-vous à la figure pour des exemples d'énumérations dans les terrains de jeux à l'aide de variations sur le code ci.

image0.jpg

Vous pouvez révéler la valeur sous-jacente d'une énumération en utilisant la valeur intrinsèque rawValue, comme dans cette ligne de code:

println (myPlace.rawValue)

Le résultat sera “ 0 ” parce que, par défaut, les valeurs premières de dénombrement commencent à zéro et le résultat d'une println fonction est une chaîne (d'où les guillemets).

Vous pouvez assigner vos propres valeurs brutes le recensement des cas. Par exemple, vous pourriez organiser la déclaration comme ceci:

énumération Parkplace: Int {piscine parkcase d'affaire = piste 25case de barscase}

Ici, Espace vert sera toujours 0 par défaut. cependant, .piscine est désormais fixé à 25, et la séquence se poursuit à partir de là. Ainsi, l'extrait de code suivant imprimer 26. Si vous aviez à définir barres à 99, la piste deviendrait automatiquement 100.

laissez Myplace = ParkPlace.barsprintln (myPlace.rawValue)

Il est courant d'utiliser des chaînes dans une énumération. Voici un échantillon dans lequel les cas de dénombrement ont des chaînes qui leur est assigné.

énumération Lieu: String = {casepark "parc", piscine = "piscine", bars = "barres d'escalade", track1 = "piste de course", track2 = "piste de marche"}

Remarque dans cet exemple qu'il ya une distinction entre les éléments de cas, qui ne sont pas cotés cordes et les valeurs associées qui sont des chaînes. Notez également que dans votre code les éléments de cas commence par une période lorsque vous les utilisez. La période est pas utilisé dans la déclaration.

.piste imprimerait 27.