Latest web development tutorials

énumération Swift

Enumeration est tout simplement un type de données, mais cela est le seul type de données qui contient une donnée spécifique au client, qui est un ensemble de caractéristiques communes de la collecte de données.

structure de recensement Swift similaire à Objective C et C, les fonctions d'énumération:

  • Il est déclaré dans la classe, la classe peut accéder à sa valeur par instanciation.

  • Enum peut également définir un constructeur (initializers) pour fournir une valeur de membre initial; peut étendre leur fonctionnalité dans la base de la mise en œuvre d'origine.

  • Vous pouvez observer le protocole (protocoles) pour fournir une fonctionnalité standard.

grammaire

Swift mot-clé enum est utilisé pour créer et d'énumérer la totalité de leurs définitions placées dans une paire de bretelles:

enum enumname {
   // 枚举定义放在这里
}

Par exemple, nous définissons le jour de la semaine, l'énumération suivante:

import Cocoa

// 定义枚举
enum DaysofaWeek {
    case Sunday
    case Monday
    case TUESDAY
    case WEDNESDAY
    case THURSDAY
    case FRIDAY
    case Saturday
}

var weekDay = DaysofaWeek.THURSDAY
weekDay = .THURSDAY
switch weekDay
{
case .Sunday:
    print("星期天")
case .Monday:
    print("星期一")
case .TUESDAY:
    print("星期二")
case .WEDNESDAY:
    print("星期三")
case .THURSDAY:
    print("星期四")
case .FRIDAY:
    print("星期五")
case .Saturday:
    print("星期六")
}

La sortie de l'exécution du programme ci-dessus est la suivante:

星期四

Valeur (tel que défini dans l'énumération des Sunday , Monday , …… et Saturday ) sont les membres des valeurs d'énumération (ou membre). case Mots clés membres représentent une nouvelle ligne de valeur sera définie.

Note: C et Objective-C et membre de l'énumération différente Swift ne sera pas donné une valeur entière par défaut est en cours de création. Dans ce qui précède DaysofaWeek exemple, Sunday , Monday , …… et Saturday seront pas implicitement attribué la valeur 0 , 1 , …… et 6 . Au lieu de cela, ces membres eux - mêmes ont une valeur d'énumération complète qui sont déjà clairement définis DaysofaWeek Type.

var weekDay = DaysofaWeek.THURSDAY 

weekDay type , il peut être DaysofaWeek inférer lorsqu'une valeur peut être initialisé. Une fois weekDay est déclarée comme DaysofaWeek , vous pouvez utiliser une syntaxe abrégée pour le mettre à un autre (.) DaysofaWeek valeur:

var weekDay = .THURSDAY 

Lorsque weekDay lorsque le type est connu, sa mission peut être omise nom nouveau recensement. Utilisez des valeurs explicites de type d'énumération rend le code plus lisible.

Il peut être divisé en valeur d'énumération associée à la valeur initiale.

La différence entre la valeur de corrélation et la valeur d'origine

La valeur de corrélation valeur originale
Différents types de données Le même type de données
Exemples: enum {10,0.8, "Bonjour"} Exemples: enum {10,35,50}
Créer une valeur basée sur constant ou variable, Valeur pré-peuplée
Valeur de corrélation lorsque vous créez une nouvelle énumération constante basée sur l'adhésion ou variable sera défini, et chaque fois que vous n'avez le temps, sa valeur peut être différente. La valeur initiale est toujours le même

La valeur de corrélation

L'exemple suivant, nous définissons un étudiant nommé du type énuméré, il peut être une valeur Nom associé (Int, Int, Int, Int), ou Mark type chaîne (String) valeur de corrélation.

import Cocoa

enum Student{
    case Name(String)
    case Mark(Int,Int,Int)
}
var studDetails = Student.Name("w3big")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
case .Name(let studName):
    print("学生的名字是: \(studName)。")
case .Mark(let Mark1, let Mark2, let Mark3):
    print("学生的成绩是: \(Mark1),\(Mark2),\(Mark3)。")
}

La sortie de l'exécution du programme ci-dessus est la suivante:

学生的成绩是: 98,97,95。

valeur originale

La valeur initiale peut être une chaîne, caractère ou un nombre entier ou valeur à virgule flottante. Chaque valeur d'origine dans sa déclaration enum doit être unique.

Lorsque la valeur d'origine est une énumération entière, sans affectation explicite pour chaque membre, Swift va automatiquement vous affecter.

Par exemple, lorsque vous utilisez une valeur entière que l'original, la valeur implicite attribué séquentiellement incrémenté par un. Si la première valeur est pas affecté la valeur initiale sera automatiquement mis à zéro.

import Cocoa

enum Month: Int {
    case January = 1, February, March, April, May, June, July, August, September, October, November, December
}

let yearMonth = Month.May.rawValue
print("数字月份为: \(yearMonth)。")

La sortie de l'exécution du programme ci-dessus est la suivante:

数字月份为: 5。