Latest web development tutorials

enumeración Swift

La enumeración es simplemente un tipo de datos, pero este es el único tipo de datos que contiene un encargo de datos específica, que es un conjunto de características comunes de la recogida de datos.

estructura de la enumeración rápida similar a Objective C y C, las funciones de enumeración:

  • Se declara en la clase, la clase puede tener acceso a su valor creando instancias.

  • Enumeración también puede definir un constructor (inicializadores) para proporcionar un valor de miembro inicial; puede extender su funcionalidad en la base implementación original.

  • Se puede observar de protocolos (protocolos) para proporcionar una característica estándar.

gramática

palabra clave enum Swift se utiliza para crear y para enumerar la totalidad de sus definiciones colocan en un par de llaves:

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

Por ejemplo, definimos el día siguiente de la semana enumeración:

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

La salida por encima de la ejecución del programa es:

星期四

Valor (tal como se define en la enumeración de Sunday , Monday , …… y Saturday ) son los miembros de los valores de la enumeración (o miembro). case Palabras clave representan los miembros se definirá una nueva línea de valor.

Nota: C y Objective-C y diferente miembro de la enumeración Swift no se le dará un valor entero por defecto que se está creando. En lo anterior DaysofaWeek ejemplo, Sunday , Monday , …… y Saturday no asignado implícitamente el valor 0 , 1 , …… y 6 . En cambio, estos mismos miembros tienen un completo valores de enumeración que ya están claramente definidos DaysofaWeek tipo.

var weekDay = DaysofaWeek.THURSDAY 

weekDay tipo puede ser DaysofaWeek infiere cuando un valor se puede inicializar. Una vez que weekDay se declara como un DaysofaWeek , puede utilizar una sintaxis abreviada para configurarlo a otro (.) DaysofaWeek valor:

var weekDay = .THURSDAY 

Cuando weekDay cuando se conoce el tipo, su asignación se puede omitir el nombre de nuevo enumeración. Utilice los valores de tipo enumeración explícita hace que el código sea más legible.

Se puede dividir en valor de la enumeración asociada con el valor original.

La diferencia entre el valor de correlación y el valor original

El valor de correlación valor original
Los diferentes tipos de datos El mismo tipo de datos
Ejemplos: enum {10,0.8, "Hola"} Ejemplos: enum {10,35,50}
Crear un valor basado en constantes o variables Valor pre-poblado
se establecerá el valor de correlación cuando se crea una nueva constante de enumeración basada en la pertenencia o variable, y cada vez que usted tiene tiempo, su valor puede ser diferente. El valor original es siempre la misma

El valor de correlación

En el ejemplo siguiente, se define un estudiante llamado del tipo enumerado, que puede ser un valor de nombre asociado (Int, Int, Int, Int), o el valor de correlación Marcar un tipo de cadena (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)。")
}

La salida por encima de la ejecución del programa es:

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

valor original

El valor original puede ser una cadena, carácter, o cualquier valor entero o de coma flotante. Cada valor original en su declaración de enumeración debe ser único.

Cuando el valor original es una enumeración número entero, sin una asignación explícita para cada miembro, Swift le asigne automáticamente.

Por ejemplo, cuando se utiliza un valor entero que el original, el valor implícito asignado incrementa secuencialmente por uno. Si no se asigna el primer valor del valor inicial se ajustará automáticamente a cero.

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

La salida por encima de la ejecución del programa es:

数字月份为: 5。