Latest web development tutorials

enumerazione Swift

Enumerazione è semplicemente un tipo di dati, ma questo è l'unico tipo di dati che contiene un dato specifico personalizzato, che è un insieme di caratteristiche comuni della raccolta di dati.

Struttura enumerazione Swift simile a Objective C e C, funzioni di enumerazione:

  • Si dichiara nella classe, la classe può accedere il suo valore istanziando.

  • Enum può anche definire un costruttore (inizializzatori) per fornire un valore membro iniziale; possono estendere la loro funzionalità in base implementazione originale.

  • È possibile osservare Protocol (protocollo) per fornire una caratteristica standard.

grammatica

Swift parola chiave enum viene utilizzato per creare ed elencare le loro intere definizioni collocati in un paio di parentesi graffe:

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

Per esempio, definiamo il giorno seguente della settimana di enumerazione:

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("星期六")
}

L'output sopra l'esecuzione del programma è il seguente:

星期四

Valore (come definito nella enumerazione di Sunday , Monday , …… e Saturday ) sono i membri dei valori di enumerazione (o membro). case Parole membri rappresentano sarà definito una nuova linea di valore.

Nota: C e Objective-C e diversi Stati enumerazione Swift non sarà dato un valore di default di un intero creato. Nella sopra DaysofaWeek esempio, Sunday , Monday , …… e Saturday non implicitamente assegnato il valore 0 , 1 , …… e 6 . Invece, questi membri stessi hanno un valori di enumerazione completa che sono già chiaramente definite DaysofaWeek tipo.

var weekDay = DaysofaWeek.THURSDAY 

weekDay tipo può essere DaysofaWeek dedotto quando un valore può essere inizializzato. Una volta che weekDay viene dichiarata come DaysofaWeek , è possibile utilizzare una sintassi abbreviata per impostare ad un altro (.) DaysofaWeek valore:

var weekDay = .THURSDAY 

Quando weekDay quando il tipo è noto, la sua assegnazione può essere omesso nome nuovo enumerazione. Utilizzare valori espliciti tipo di enumerazione rende il codice più leggibile.

Può essere diviso in valore di enumerazione associata al valore originale.

La differenza tra il valore di correlazione ed il valore originale

Il valore di correlazione valore originale
Diversi tipi di dati Lo stesso tipo di dati
Esempi: enum {10,0.8, "Ciao"} Esempi: enum {10,35,50}
Creare un valore sulla base di costante o variabile Valore pre-popolato
Valore di correlazione quando si crea una nuova costante di enumerazione di appartenenza-based o variabile sarà impostata, e ogni volta che si ha il tempo, il suo valore può essere diverso. Il valore originale è sempre la stessa

Il valore di correlazione

L'esempio seguente, si definisce un nome studente del tipo enumerato, può essere un valore di nome associato (Int, Int, Int, Int), o valore di correlazione Mark un tipo di stringa (String).

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)。")
}

L'output sopra l'esecuzione del programma è il seguente:

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

valore originale

Il valore originale può essere una stringa, carattere, o un numero intero o un valore in virgola mobile. Ogni valore originale nella sua dichiarazione enum deve essere univoco.

Quando il valore originale è una enumerazione intero, senza un incarico esplicito per ogni membro, Swift assegnerà automaticamente.

Ad esempio, quando si utilizza un valore intero come l'originale, il valore implicito assegnato sequenziale incrementato di uno. Se il primo valore non viene assegnato il valore iniziale sarà impostato automaticamente a zero.

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)。")

L'output sopra l'esecuzione del programma è il seguente:

数字月份为: 5。