pencacahan Swift
Pencacahan hanyalah sebuah tipe data, tapi ini adalah satu-satunya tipe data yang berisi data kustom spesifik, yang merupakan seperangkat karakteristik umum dari pengumpulan data.
Struktur pencacahan Swift mirip dengan Objective C dan C, fungsi pencacahan:
Hal ini dinyatakan dalam kelas, kelas dapat mengakses nilai oleh instantiating.
Enum juga dapat mendefinisikan konstruktor (initializers) untuk memberikan nilai anggota awal; dapat memperluas fungsi mereka di dasar pelaksanaan asli.
Anda dapat mengamati protokol (protokol) untuk memberikan fitur standar.
tatabahasa
Swift kata kunci enum digunakan untuk membuat dan menghitung seluruh definisi mereka ditempatkan di sepasang kawat gigi:
enum enumname { // 枚举定义放在这里 }
Sebagai contoh, kita mendefinisikan hari berikutnya dari minggu pencacahan:
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("星期六") }
Output di atas eksekusi program adalah:
星期四
Nilai (sebagaimana didefinisikan dalam penghitungan Sunday
, Monday
, ……
dan Saturday
) adalah anggota dari nilai-nilai pencacahan (atau anggota). case
anggota Keywords mewakili baris baru nilai akan ditentukan.
Catatan: C dan Objective-C dan anggota pencacahan berbeda Swift tidak akan diberikan nilai default bilangan bulat sedang dibuat. Dalam contoh di atas
DaysofaWeek
contoh,Sunday
,Monday
,……
danSaturday
tidak akan secara implisit ditugaskan nilai0
,1
,……
dan6
. Sebaliknya, anggota ini sendiri memiliki nilai-nilai pencacahan lengkap yang sudah jelasDaysofaWeek
jenis.
var weekDay = DaysofaWeek.THURSDAY
weekDay
Jenis mungkin DaysofaWeek
disimpulkan ketika nilai dapat diinisialisasi. Setelah weekDay
dinyatakan sebagai DaysofaWeek
, Anda dapat menggunakan sintaks disingkat set ke yang lain (.) DaysofaWeek
nilai:
var weekDay = .THURSDAY
Ketika weekDay
ketika jenis diketahui, tugas yang mungkin dihilangkan nama lagi pencacahan. Gunakan tipe nilai pencacahan eksplisit membuat kode lebih mudah dibaca.
Hal ini dapat dibagi menjadi nilai pencacahan terkait dengan nilai asli.
Perbedaan antara nilai korelasi dan nilai asli
Nilai korelasi | nilai asli |
---|---|
berbagai jenis data | Tipe data yang sama |
Contoh: enum {10,0.8, "Hello"} | Contoh: enum {10,35,50} |
Menciptakan nilai berdasarkan konstan atau variabel | Nilai pra-penduduk |
nilai korelasi ketika Anda membuat keanggotaan berbasis pencacahan konstan baru atau variabel akan ditetapkan, dan setiap kali ketika Anda punya waktu, nilainya mungkin berbeda. | Nilai asli selalu sama |
Nilai korelasi
Contoh berikut, kita mendefinisikan Mahasiswa bernama dari tipe enumerasi, itu bisa menjadi nilai yang terkait Nama (Int, Int, Int, Int), atau Mark tipe string (String) nilai korelasi.
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)。") }
Output di atas eksekusi program adalah:
学生的成绩是: 98,97,95。
nilai asli
Nilai asli dapat berupa string, karakter, atau integer atau nilai floating-point. Setiap nilai asli dalam deklarasi enum yang harus unik.
Ketika nilai asli adalah penghitungan bilangan bulat, tanpa tugas yang jelas untuk setiap anggota, Swift akan secara otomatis menetapkan Anda.
Misalnya, ketika menggunakan nilai integer seperti aslinya, nilai implisit diberikan secara berurutan bertambah satu. Jika nilai pertama tidak ditugaskan nilai awal akan secara otomatis diatur ke nol.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)。")
Output di atas eksekusi program adalah:
数字月份为: 5。