Najlepszy samouczek Swift wyliczenie W 2024 r. W tym samouczku możesz dowiedzieć się Wartość korelacji,wartość Original,
Wyliczenie to po prostu typ danych, ale jest to jedyny typ danych, który zawiera niestandardowy określonych danych, która jest zbiorem wspólnych cech gromadzenia danych.
Swift struktura podobna do wyliczenia Objective C i C, funkcje liczby:
Jest ona zadeklarowana w klasie, klasa może uzyskać dostęp do jego wartość o uruchamianiu.
Enum można również zdefiniować konstruktor (inicjalizatory), aby zapewnić wartość początkową członkowskim; może rozszerzyć ich funkcjonalność w pierwotnym podstawie realizacji.
Można zaobserwować protokołu (protokoły), aby zapewnić standardową funkcję.
Swift kluczowe enum jest używany do tworzenia i wymienić całe ich definicje umieszczone w parę szelek:
enum enumname { // 枚举定义放在这里 }
Na przykład, możemy zdefiniować następny dzień tygodnia wyliczenie:
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("星期六") }
Wyjście powyżej wykonywanie programu jest:
星期四
Wartość (zgodnie z definicją zawartą w wyliczenie Sunday
, Monday
, ……
i Saturday
) są członkami wartości wyliczenia (lub państw). case
kluczowe członkowie reprezentują nową linię wartości zostaną określone.
Uwaga: C i Objective-C i inna członkiem wyliczenie Swift nie otrzyma domyślną wartość całkowita jest tworzony. W powyższym
DaysofaWeek
przykład,Sunday
,Monday
,……
iSaturday
nie będzie domyślnie przypisywana jest wartość0
,1
,……
i6
. Zamiast tego same te elementy mają pełne wartości wyliczenia, które są już jasno określoneDaysofaWeek
typu.
var weekDay = DaysofaWeek.THURSDAY
weekDay
typ może być DaysofaWeek
wywnioskować, gdy wartość ta może zostać zainicjowany. Po weekDay
jest zadeklarowana jako DaysofaWeek
można używać skróconej składni, aby ustawić go na inny (.) DaysofaWeek
wartości:
var weekDay = .THURSDAY
Gdy weekDay
, gdy typ jest znany, jego przypisanie może zostać pominięty znów wyliczenia nazwę. Użyj jawne wartości typu wyliczenia sprawia, że kod jest bardziej czytelny.
Można je podzielić na wyliczenie wartości związanej z pierwotnej wartości.
Wartość korelacji | wartość Original |
---|---|
Różne rodzaje danych | Ten sam typ danych |
Przykłady: enum {10,0.8, "Hello"} | Przykłady: enum {10,35,50} |
Tworzenie wartości w oparciu o stałą lub zmienną | Wartość wstępnie wypełnione |
wartość korelacji podczas tworzenia nowego wyliczenia stałej na zasadach członkostwa lub zmiennej zostanie ustawiona, a za każdym razem, kiedy mamy czasu, jego wartość może być inna. | Wartość początkowa jest zawsze taka sama |
Poniższy przykład, możemy zdefiniować nazwie Student typu wyliczeniowego, może to być związane Wartość Nazwa (Int, Int, Int, Int) lub Mark typu string (String) wartość korelacji.
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)。") }
Wyjście powyżej wykonywanie programu jest:
学生的成绩是: 98,97,95。
Oryginalny wartość może być ciągiem znaków lub dowolną liczbą całkowitą lub wartość zmiennoprzecinkową. Każda oryginalna wartość w deklaracji enum musi być unikatowa.
Gdy wartość początkowa stanowi wyliczenie całkowitą, bez wyraźnego przypisania dla każdego członka, Swift automatycznie przypisze ci.
Na przykład, podczas korzystania wartość całkowitą jako oryginalna wartość niejawny przypisane kolejno zwiększana o jeden. Jeśli pierwsza wartość nie jest przypisana wartość początkowa zostanie automatycznie ustawiony na 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)。")
Wyjście powyżej wykonywanie programu jest:
数字月份为: 5。