Latest web development tutorials

Swift opzionali (Optional) Tipo

Swift opzionale tipo (opzionale), utilizzato durante la manipolazione di valori mancanti. mezzi opzionali "dove c'è un valore, ed è uguale x" o "non c'è alcun valore."

Swfit definizione suffisso lingua? Opzionale come un tipo di nome di scorciatoia, in altre parole, le due istruzioni sono equivalenti:

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

In entrambi i casi, il optionalInteger variabili sono di tipo intero opzionale. Si noti che, nel tipo e? Non c'è spazio tra.

Opzionale è un'enumerazione contenente entrambi i casi, Nessuno e Alcuni (T), è utilizzato per indicare che può o non può avere un valore. Qualsiasi tipo può essere esplicitamente dichiarato come (o conversione implicita) di tipo opzionale. Quando si dichiara un tipo opzionale di tempo, assicurarsi di utilizzare le staffe? Operatore una gamma adeguata. Ad esempio, una dichiarazione di matrice intero opzionale, dovrebbe essere scritto (int []);? Scritto come int [] errore.

Quando si dichiara una attributi variabili o opzionale opzionale non è disponibile quando il valore iniziale, il suo valore di default pari a zero.

Accordo opzionale LogicValue seguito, può apparire in un contesto booleano. In questo caso, se il tipo T facoltativo? Contenere qualsiasi tipo di valore T (cioè il suo valore è Optional.Some (T)), questo tipo opzionale uguale a true, altrimenti è falso.

Se un'istanza opzionale di un tipo che contiene un valore, è possibile utilizzare l'operatore postfix! Per accedere al valore come segue:

optionalInteger = 42
optionalInteger! // 42

Utilizzare operatore! Per acquisire una variabile opzionale è pari a zero ci saranno errori di run-time.

È possibile utilizzare un collegamento opzionale e un legano selettivamente opzionale per eseguire operazioni sul espressione opzionale. Se il valore è pari a zero, non operazioni siano attuate, non verranno eseguiti errore.

Diamo uno sguardo ai seguenti esempi per imparare tipi opzionali Swift di applicazioni:

import Cocoa

var myString:String? = nil

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

I suddetti risultati dell'esecuzione del programma:

字符串为 nil

tipo opzionale è simile al valore di puntatori nil in Objective-C, ma solo alla classe nil (classe) utile ma facoltativa per tutti i tipi di tipi sono disponibili e più sicuro.


Costretto a risolvere

Una volta determinato il tipo di non contenere i valori opzionali, è possibile aggiungere un nome opzionale dietro un punto esclamativo (!) Per ottenere il valore. Il punto esclamativo ha detto: "So che ci sono valori opzionali, usarlo." Questo si chiama obbligatoria valore analizzato opzionale (forzata scartare).

Esempi sono i seguenti:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

I suddetti risultati dell'esecuzione del programma:

Optional("Hello, Swift!")

valori opzionali analitici forzati, usa il punto esclamativo (!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

I suddetti risultati dell'esecuzione del programma:

Hello, Swift!

Nota:
Utilizzare ! Per ottenere un inesistenti valori opzionali si tradurrà in un errore di runtime. Usa ! Prima di forzare il valore analitico, è necessario determinare eventualmente contenere un non nil valore.


analizzare automaticamente

È possibile sostituire un punto di domanda quando si dichiara un punto esclamativo opzionale variabile (!) (?). Quando si utilizza questo variabili facoltative non ti servono più un punto esclamativo (!) Per ottenere il valore, si analizzerà automaticamente.

Esempi sono i seguenti:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

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

I suddetti risultati dell'esecuzione del programma:

Hello, Swift!

Bind opzionale

Utilizzando le legature opzionali (opzionale vincolante) per determinare se un tipo opzionale contiene il valore, se contiene un valore assegnato a mettere una variabile temporanea o costante. Opzionale legame può essere utilizzato se e mentre bilanci per valutare il valore di un tipo opzionale e assegnare un valore a una costante o variabile.

Ti piace questa istruzione if scritto in un optional vincolante:

if let constantName = someOptional {
    statements
}

Diamo un'occhiata a un semplice esempio di legame alternativa:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

I suddetti risultati dell'esecuzione del programma:

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