Red de conocimiento informático - Aprendizaje de código fuente - Cómo utilizar el método fromraw para obtener un valor de enumeración con un valor inicial de x en la última versión de swift

Cómo utilizar el método fromraw para obtener un valor de enumeración con un valor inicial de x en la última versión de swift

En Swift, hay tres tipos que tienen características de clase, a saber, tipos de enumeración, tipos de estructura (incluidos los tipos primitivos, que en realidad son casos especiales de tipos de estructura) y clases. Los tipos de enumeración y los tipos de estructura son tipos de valor, mientras que las clases son tipos de referencia. Los tres tipos pueden agregar propiedades, métodos, métodos con subíndices, la capacidad de usar extensiones para ampliar la funcionalidad, el uso de protocolos, etc.

I. Enumeraciones

Una enumeración define un tipo público que contiene un conjunto de valores relacionados. Las enumeraciones son tipos de clases en Swift que tienen muchas características que se encuentran solo en las clases tradicionales, como propiedades calculadas, métodos de instancia, la capacidad de mejorar la funcionalidad a través de extensiones o protocolos, y más.

1.1 Definición de enumeración

La sintaxis para definir tipos de enumeración en el lenguaje Swift es la siguiente:

enum CompassPoint {

case North

p>

caso Sur

caso Este

caso OestedirecciónToHead = .Sur

cambiar direcciónToHead {

case .North:

println("Muchos planetas tienen un norte")

case .

println("Cuidado con los pingüinos")

case .East:

println("Donde sale el sol")

case .West:

println("Donde los cielos son azules")

case .skies are blue")

}

1.3 Especificar valores relevantes para los miembros de la enumeración

Swift puede especificar para cada miembro de la enumeración valores relacionados de cualquier tipo, y el tipo de valor relacionado especificado para cada miembro de la enumeración puede ser diferente

enum Barcode {

case UPCA(Int, Int , Int)

case QRCode(String)

}

Este ejemplo define un tipo de enumeración de tipo Código de barras, que contiene dos valores de enumeración UPCA y QRCode, y puede ser El valor de enumeración UPCA especifica un valor relacionado de tipo tupla, y QRCode especifica un valor relacionado de tipo cadena; este ejemplo no especifica ningún tipo de valor para el valor de enumeración en sí. Se pueden utilizar constantes o variables. Asigne el valor de enumeración definido anteriormente, por ejemplo:

var productBarcode =Barcode.UPCA(8, 85909_51226, 3)

Este ejemplo asigna el código de barras. Valor de enumeración UPCA a la variable productBarcode y asigne un valor a su tipo de bifurcación múltiple asociado (8, 85909_51226, 3).

Esta variable productBarcode luego se puede establecer en otro valor de enumeración cuyo valor asociado sea de tipo cadena:

productBarcode = .QRCode("ABCDEFGHIJKLMNOP")

También puede usar enumeraciones en declaraciones de cambio y obtener los valores de los tipos relacionados que llevan vinculando constantes o variables:

switch productBarcode {

case .UPCA( let numberSystem, let identifier , vamos a comprobar).

println("UPC-A con valor de\(numberSystem),\(identifier),\(check).")

case .QRCode(let productCode):

p>

println("Código QR con valor de\(productCode).")

}

Si todos los valores asociados del miembro de enumeración se hace referencia a ellos como constantes, o todos Los valores asociados se hacen referencia a todos como variables, por lo que la sintaxis anterior también se puede abreviar a la siguiente forma:

Cambiar productBarcode {

case let .UPCA(númeroSistema, identificador, cheque):

println("UPC-A con valor de\(númeroSistema),\(identificador),\(verificación).")

case let .QRCode(productCode):

println("Código QR con valor de\(productCode).")

}

1.4 Especificando valores originales ​​para enumeraciones

Excepto para enumeraciones Además de especificar valores relacionados para los miembros, también puede especificar previamente un valor primitivo del mismo tipo para cada miembro de la enumeración. Esto es similar a asignar un valor entero a un miembro de enumeración en C, pero Swift define el tipo del valor primitivo como cadena, carácter o cualquier tipo entero o de punto flotante, etc.

enum ASCIIControlCharacter:Character {

case Tab = "\t"

case LineFeed = "\n"

case CarriageReturn = "\r"

}