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!