Latest web development tutorials

Swift перечисление

Перечисление просто тип данных, но это единственный тип данных, который содержит пользовательские конкретные данные, который представляет собой набор общих характеристик сбора данных.

Swift структура перечисления похожа на Objective C и C, перечисление функций:

  • Он объявлен в классе, класс может получить доступ к его значение на инстанцировании.

  • Enum можно также определить конструктор (инициализаторы), чтобы обеспечить начальное значение члена, может расширить их функциональные возможности в оригинальной основе реализации.

  • Вы можете наблюдать протокол (протоколы), чтобы обеспечить стандартную функцию.

грамматика

Swift перечисление ключевых слов используется для создания и перечислить их все определения, помещается в пару скобок:

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

Например, мы определяем следующий день недели перечисления:

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

Выход выше выполнение программы:

星期四

Значение (как определено в перечислении Sunday , Monday , …… и Saturday ) являются членами значений перечисления (или элемента). case Ключевые слова члены представляют будет определяться новая линия значения.

Примечание: C и Objective-C и другого члена перечисления Swift не будет дано целое значение по умолчанию создается. В приведенном выше DaysofaWeek например, Sunday , Monday , …… и Saturday не будет неявно присваивается значение 0 , 1 , …… и 6 . Вместо этого сами эти члены имеют полное значения перечисления, которые уже четко определены DaysofaWeek типа.

var weekDay = DaysofaWeek.THURSDAY 

weekDay типа может быть DaysofaWeek вывод , когда значение может быть инициализирована. После weekDay объявлен как DaysofaWeek , вы можете использовать сокращенный синтаксис , чтобы установить его на другой (.) DaysofaWeek значение:

var weekDay = .THURSDAY 

Когда weekDay , когда тип известен, его назначение может быть опущено снова перечисления имя. Используйте явные значения типа перечисления делает код более удобным для чтения.

Его можно разделить на значение перечисления, связанные с первоначальным значением.

Разница между значением корреляции и исходное значение

Значение корреляции первоначальная стоимость
Различные типы данных Тот же тип данных
Примеры: {перечислимый 10,0.8, "Hello"} Примеры: {перечислимый 10,35,50}
Создайте значение, основанное на постоянной или переменной Значение предварительно населенная
Корреляция значение при создании нового членства на основе константы перечисления или переменная будет установлена, и каждый раз, когда у вас есть время, то его значение может отличаться. Исходное значение всегда одинакова

Значение корреляции

В следующем примере мы определяем с именем Student перечислимого типа, это может быть связано значение Имя (Int, Int, Int, Int), или Отметьте тип строки (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)。")
}

Выход выше выполнение программы:

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

первоначальная стоимость

Исходное значение может быть строка, символ или любое целое число или число с плавающей точкой. Каждое исходное значение в перечислимом декларации должно быть уникальным.

Когда исходное значение представляет собой целое перечисление, без явного присваивания для каждого члена, Swift автоматически назначит вам.

Например, при использовании целое значение в качестве оригинала, неявное значение, присвоенное последовательно увеличивается на единицу. Если первое значение не присваивается начальное значение будет автоматически устанавливается равным нулю.

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

Выход выше выполнение программы:

数字月份为: 5。