Latest web development tutorials

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 , …… dan Saturday tidak akan secara implisit ditugaskan nilai 0 , 1 , …… dan 6 . Sebaliknya, anggota ini sendiri memiliki nilai-nilai pencacahan lengkap yang sudah jelas DaysofaWeek 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。