Swift - Aufzählungen

Eine Aufzählung ist ein benutzerdefinierter Datentyp, der aus einer Reihe zusammengehöriger Werte besteht. Stichwortenum wird verwendet, um den aufgezählten Datentyp zu definieren.

Aufzählungsfunktionalität

Die Aufzählung in Swift 4 ähnelt auch der Struktur von C und Ziel C.

  • Es wird in einer Klasse deklariert und auf seine Werte wird über die Instanz dieser Klasse zugegriffen.

  • Der anfängliche Elementwert wird mithilfe von Enum-Intializierern definiert.

  • Die Funktionalität wird auch durch die Sicherstellung der Standardprotokollfunktionalität erweitert.

Syntax

Aufzählungen werden mit dem Schlüsselwort enum eingeführt und setzen ihre gesamte Definition in geschweifte Klammern.

enum enumname {
   // enumeration values are described here
}

Beispielsweise können Sie eine Aufzählung für Wochentage wie folgt definieren:

enum DaysofaWeek {
   case Sunday
   case Monday
   ---
   case Saturday
}

Beispiel

enum names {
   case Swift
   case Closures
}

var lang = names.Closures
lang = .Closures

switch lang {
   case .Swift:
      print("Welcome to Swift")
   case .Closures:
      print("Welcome to Closures")
   default:
      print("Introduction")
}

Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:

Welcome to Closures

Die Swift 4-Aufzählung weist ihren Mitgliedern keinen Standardwert wie C und Ziel C zu. Stattdessen werden die Mitglieder explizit durch ihre Aufzählungsnamen definiert. Der Name der Aufzählung sollte mit einem Großbuchstaben beginnen (Beispiel: enum DaysofaWeek).

var weekDay = DaysofaWeek.Sunday

Hier wird der Aufzählungsname 'DaysofaWeek' einem variablen Wochentag zugewiesen. Sonntag. Es informiert den Compiler, dass der Datentyp, der zum Sonntag gehört, nachfolgenden Enum-Mitgliedern dieser bestimmten Klasse zugewiesen wird. Sobald der Datentyp enum member definiert ist, kann auf die Mitglieder zugegriffen werden, indem Werte übergeben und weitere Berechnungen durchgeführt werden.

Aufzählung mit Switch-Anweisung

Die Swift 4-Anweisung 'Switch' folgt ebenfalls der Mehrwegauswahl. Auf eine Variable wird zu einem bestimmten Zeitpunkt basierend auf der angegebenen Bedingung zugegriffen. Der Standardfall in der switch-Anweisung wird verwendet, um nicht angegebene Fälle abzufangen.

enum Climate {
   case India
   case America
   case Africa
   case Australia
}

var season = Climate.America
season = .America
switch season {
   case .India:
      print("Climate is Hot")
   case .America:
      print("Climate is Cold")
   case .Africa:
      print("Climate is Moderate")
   case .Australia:
      print("Climate is Rainy")
   
}

Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:

Climate is Cold

Das Programm definiert zunächst Climate als Aufzählungsnamen. Dann werden seine Mitglieder wie "Indien", "Amerika", "Afrika" und "Australien" zur Klasse "Klima" erklärt. Jetzt ist das Mitglied Amerika einer Saisonvariablen zugeordnet. Außerdem werden in Switch case die Werte angezeigt, die .America entsprechen, und es wird zu dieser bestimmten Anweisung verzweigt. Die Ausgabe wird als "Klima ist kalt" angezeigt. Ebenso kann auf alle Mitglieder über switch-Anweisungen zugegriffen werden. Wenn die Bedingung nicht erfüllt ist, wird standardmäßig "Klima ist nicht vorhersehbar" gedruckt.

Die Aufzählung kann weiter in zugehörige Werte und Rohwerte unterteilt werden.

Unterschied zwischen zugehörigen Werten und Rohwerten

Zugehörige Werte Rohwerte
Verschiedene Datentypen Gleiche Datentypen
Beispiel: enum {10,0.8, "Hallo"} Beispiel: Aufzählung {10,35,50}
Werte werden basierend auf Konstanten oder Variablen erstellt Vorbevölkerte Werte
Variiert jedes Mal, wenn es deklariert wird Der Wert für das Mitglied ist der gleiche

Aufzählung mit zugehörigen Werten

enum Student {
   case Name(String)
   case Mark(Int,Int,Int)
}

var studDetails = Student.Name("Swift 4")
var studMarks = Student.Mark(98,97,95)

switch studMarks {
   case .Name(let studName):
      print("Student name is: \(studName).")
   case .Mark(let Mark1, let Mark2, let Mark3):
      print("Student Marks are: \(Mark1),\(Mark2),\(Mark3).")
}

Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:

Student Marks are: 98,97,95.

Betrachten Sie zum Beispiel den Zugriff auf den Schülernamen und die in drei Fächern gesicherten Noten. Der Aufzählungsname wird als Schüler deklariert, und die in der Aufzählungsklasse vorhandenen Mitglieder sind Namen, die zum Zeichenfolgendatentyp gehören. Noten werden als Marke1, Marke2 und Marke3 des Datentyps Integer dargestellt. Zugriff auf den Namen des Schülers oder auf die von ihm erzielten Noten

var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)

Jetzt druckt der Schalterfall den Schülernamen, wenn dieser Fallblock ausgeführt wird, andernfalls werden die vom Schüler gesicherten Markierungen gedruckt. Wenn beide Bedingungen fehlschlagen, wird der Standardblock ausgeführt.

Aufzählung mit Rohwerten

Rohwerte können Zeichenfolgen, Zeichen oder beliebige Ganzzahl- oder Gleitkommazahlentypen sein. Jeder Rohwert muss innerhalb seiner Aufzählungsdeklaration eindeutig sein. Wenn für Rohwerte Ganzzahlen verwendet werden, werden diese automatisch erhöht, wenn für einige der Aufzählungselemente kein Wert angegeben wird.

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

let yearMonth = Month.May.rawValue
print("Value of the Month is: \(yearMonth).")

Wenn wir das obige Programm auf einem Spielplatz ausführen, erhalten wir das folgende Ergebnis:

Value of the Month is: 5.