Latest web development tutorials

Swift opcionales (Opcional) Tipo

Swift opcional (Opcional), utilizado al tratamiento de los valores perdidos. medios opcionales "donde hay un valor, y es igual a x" o "no hay ningún valor."

idioma Swfit sufijo definición? Opcional como un tipo con nombre de taquigrafía, en otras palabras, las dos sentencias siguientes son equivalentes:

var optionalInteger: Int?
var optionalInteger: Optional<Int>

En ambos casos, el optionalInteger variables son de tipo entero opcional. Tenga en cuenta que, en el tipo y? No hay espacio entre.

Opcional es una enumeración que contiene tanto los casos, y ninguno Algunos (T), se utiliza para indicar que puede o no puede tener un valor. Cualquier tipo puede ser declarado explícitamente como (o conversión implícita) de tipo opcional. Cuando se declara un tipo opcional de tiempo, asegúrese de utilizar los soportes? Operador de un rango apropiado. Por ejemplo, una declaración de matriz entero opcional, debe ser escrito (int []);? Escrita como int [] error?.

Cuando se declara una variable de atributos u opcionales opcional no está disponible cuando el valor inicial, su valor por defecto es cero.

LogicValue acuerdo de seguimiento opcional, puede aparecer en un contexto booleano. En este caso, si el tipo T opcional? Contiene ningún tipo de valor de T (es decir, su valor es Optional.Some (T)), este tipo opcional vale true, en caso contrario es falso.

Si una instancia de un tipo opcional que contiene un valor, puede utilizar el operador de sufijo! Para acceder al valor de la siguiente manera:

optionalInteger = 42
optionalInteger! // 42

Utilice el operador! Para adquirir una variable opcional es nula habrá errores en tiempo de ejecución.

Se puede utilizar un enlace opcional y una opcional se unen selectivamente a realizar operaciones en la expresión opcional. Si el valor es nulo, no hay operaciones se implementan, no se llevará a cabo de error.

Vamos a echar un vistazo a los siguientes ejemplos para aprender tipos opcionales Swift de aplicaciones:

import Cocoa

var myString:String? = nil

if myString != nil {
    print(myString)
}else{
    print("字符串为 nil")
}

Los anteriores resultados de la ejecución del programa:

字符串为 nil

Tipo opcional es similar al valor de punteros nulos en Objective-C, pero sólo a la clase nula (clase) útil, pero opcional para todos los tipos de tipos están disponibles, y más seguro.


Obligado a resolver

Una vez que determine el tipo no contener valores opcionales, puede añadir un nombre opcional detrás de un signo de exclamación (!) Para obtener el valor. El signo de exclamación dijo: "Yo sé que hay valores opcionales, lo utilizan." Esto se llama obligatoria valor analizada opcional (forzado desenvolver).

Ejemplos son los siguientes:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

Los anteriores resultados de la ejecución del programa:

Optional("Hello, Swift!")

Los valores analíticos opcionales forzadas, use el signo de exclamación (!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   // 强制解析
   print( myString! )
}else{
   print("myString 值为 nil")
}

Los anteriores resultados de la ejecución del programa:

Hello, Swift!

Nota:
Usar ! Para obtener una inexistentes valores opcionales se traducirá en un error de ejecución. Usar ! Antes de forzar el valor analítico, debe determinar opcionalmente contener un no nil valor.


analizar de forma automática

Puede sustituir un signo de interrogación cuando se declara una variable de signo de exclamación opcional (!) (?). Al utilizar estas variables opcionales que no necesita más un signo de exclamación (!) Para obtener el valor, se analizará automáticamente.

Ejemplos son los siguientes:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

Los anteriores resultados de la ejecución del programa:

Hello, Swift!

Enlazar opcional

El uso de los enlaces opcionales (opcional vinculante) para determinar si un tipo opcional contiene el valor, si contiene un valor asignado para poner una variable temporal o constante. Opcional La unión se puede utilizar en si, y aunque las declaraciones de juzgar el valor de un tipo opcional y asignar un valor a una constante o variable.

Al igual que esta sentencia if escrita en una unión opcional:

if let constantName = someOptional {
    statements
}

Veamos un simple ejemplo de unión alternativa:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

Los anteriores resultados de la ejecución del programa:

你的字符串值为 - Hello, Swift!