Latest web development tutorials

Swift opcionais (Opcionais) Tipo

opcional (Opcional) Tipo de Swift, ao manusear os valores em falta. meios opcionais "onde há um valor, e é igual a x" ou "não há nenhum valor."

sufixo definição de linguagem Swfit? Opcional como um tipo chamado de taquigrafia, em outras palavras, as duas instruções a seguir são equivalentes:

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

Em ambos os casos, o optionalInteger variável são do tipo inteiro opcional. Note-se que, no tipo e? Não há espaço entre.

Opcional é uma enumeração contendo ambos os casos, e Alguns Nenhum (t), é usado para indicar que pode ou não ter valor. Qualquer tipo pode ser declarado explicitamente como (ou conversão implícita) tipo opcional. Quando você declarar um tipo opcional de tempo, certifique-se de usar os suportes? Operador de uma gama adequada. Por exemplo, uma declaração de matriz inteiro opcional, deve ser escrito (int []); escrita como int [] Erro?.

Quando você declara uma atributos variáveis ​​ou opcionais opcional não está disponível quando o valor inicial, as suas valor padrão é nulo.

Opcional acordo LogicValue acompanhamento, ele pode aparecer em um contexto booleano. Neste caso, se o tipo T opcional? Conter qualquer tipo de valor T (ou seja, o seu valor é Optional.Some (T)), este tipo opcional é igual a true, caso contrário, ela é falsa.

Se uma instância opcional de um tipo que contém um valor, você pode usar o operador postfix! Para aceder ao valor da seguinte forma:

optionalInteger = 42
optionalInteger! // 42

Usar o operador! Para adquirir uma variável facultativa é nula haverá erros de tempo de execução.

Você pode usar um link opcional e um ligamento opcional seletivamente para executar operações sobre a expressão opcional. Se o valor for nulo, nenhuma operação for implementada, não vai ser executado erro.

Vamos dar uma olhada nos seguintes exemplos para aprender tipos Swift opcionais de aplicações:

import Cocoa

var myString:String? = nil

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

Os resultados da execução do programa acima:

字符串为 nil

opcional tipo é semelhante ao valor dos ponteiros nulo em Objective-C, mas apenas para a classe nil (classe) útil, mas opcional para todos os tipos de tipos estão disponíveis, e mais seguro.


Forçado a resolver

Depois de determinar o tipo contém valores opcionais, você pode adicionar um nome opcional por trás de um ponto de exclamação (!) Para obter o valor. O ponto de exclamação disse: "Eu sei que existem valores opcionais, usá-lo." Isso é chamado obrigatória valor analisado opcional (forçado desembrulhar).

Exemplos são os seguintes:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

Os resultados da execução do programa acima:

Optional("Hello, Swift!")

valores opcionais analíticos forçados, use o ponto de exclamação (!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

Os resultados da execução do programa acima:

Hello, Swift!

Nota:
Use ! Para obter um valores opcionais inexistentes irá resultar em um erro de execução. Use ! Antes de forçar o valor analítico, você deve determinar opcionalmente conter um não- nil valor.


analisar automaticamente

Você pode substituir um ponto de interrogação quando você declarar um ponto de exclamação opcional variável (!) (?). Ao usar essas variáveis ​​opcionais que você não precisa mais um ponto de exclamação (!) Para obter o valor, ele irá analisar automaticamente.

Exemplos são os seguintes:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

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

Os resultados da execução do programa acima:

Hello, Swift!

Bind opcional

Usando as ligações opcionais (opcional de ligação) para determinar se um tipo de opcionais contém o valor, se ele contém um valor atribuído para colocar uma variável temporária ou constante. Opcional de ligação podem ser utilizados em se e enquanto demonstrações para avaliar o valor de um tipo opcional e atribuir um valor de uma constante ou variável.

Como isso se declaração por escrito em um opcional de ligação:

if let constantName = someOptional {
    statements
}

Vejamos um exemplo de ligação alternativa simples:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

Os resultados da execução do programa acima:

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