Latest web development tutorials

Swift en option (Optional) Type

option de type (en option) Swift, utilisé lors de la manipulation des valeurs manquantes. des moyens optionnels "où il y a une valeur, et il est égal à x» ou «il n'y a pas de valeur."

Swfit langue définition suffixe? En option comme un type nommé de sténographie, en d'autres termes, les deux instructions suivantes sont équivalentes:

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

Dans les deux cas, la optionalInteger variables sont facultatives type entier. On notera que, dans le type et? Il n'y a pas d'espace entre les deux.

Facultatif est une énumération contenant les deux cas, None et certains (T), est utilisé pour indiquer qu'il peut ou ne peut pas avoir de valeur. Tout type peut être explicitement déclaré (ou conversion implicite) de type optionnel. Lorsque vous déclarez un type optionnel de temps, assurez-vous d'utiliser des crochets? Opérateur d'une gamme appropriée. Par exemple, une option déclaration de tableau entier, doit être écrit (Int []);? Écrit Int [] Erreur?.

Lorsque vous déclarez un des attributs variables ou en option en option non disponible lorsque la valeur initiale, sa valeur par défaut à zéro.

Facultatif accord de LogicValue de suivi, il peut apparaître dans un contexte booléen. Dans ce cas, si le type option T? Contenir tout type de valeur T (c'est-à-dire sa valeur est Optional.Some (T)), ce type option est égal à true, sinon il est faux.

Si une instance facultative d'un type qui contient une valeur, vous pouvez utiliser l'opérateur postfix! Pour accéder à la valeur comme suit:

optionalInteger = 42
optionalInteger! // 42

Utilisez l'opérateur! Pour acquérir une variable optionnelle est nul, il y aura les erreurs d'exécution.

Vous pouvez utiliser un lien en option et une option bind sélectivement pour effectuer des opérations sur l'expression en option. Si la valeur est nulle, aucune opération sont mises en œuvre, il ne seront pas exécutées erreur.

Jetons un regard sur les exemples suivants pour apprendre types facultatifs Swift d'applications:

import Cocoa

var myString:String? = nil

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

Les résultats de l'exécution du programme ci-dessus:

字符串为 nil

Type option est similaire à la valeur des pointeurs nuls en Objective-C, mais seulement à la classe nulle (classe) utile, mais en option pour tous les types de types sont disponibles, et plus sûr.


Forcé à résoudre

Une fois que vous déterminez le type ne contient des valeurs facultatives, vous pouvez ajouter un nom facultatif derrière un point d'exclamation (!) Pour obtenir la valeur. Le point d'exclamation dit: «Je sais qu'il ya des valeurs facultatives, l'utiliser." Ceci est appelé valeur analysée en option obligatoire (déballant forcée).

Des exemples sont les suivants:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

Les résultats de l'exécution du programme ci-dessus:

Optional("Hello, Swift!")

valeurs facultatives analytiques forcées, utiliser le point d'exclamation (!):

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

Les résultats de l'exécution du programme ci-dessus:

Hello, Swift!

Remarque:
Utilisez ! Pour obtenir une des valeurs facultatives inexistantes se traduira par une erreur d'exécution. Utiliser ! Avant de forcer la valeur analytique, vous devez déterminer éventuellement contenir un non nil valeur.


analyser automatiquement

Vous pouvez remplacer un point d'interrogation lorsque vous déclarez un point d'exclamation en option variable (!) (?). Lorsque vous utilisez cette variables optionnelles vous ne devez plus un point d'exclamation (!) Pour obtenir la valeur, il sera automatiquement analyser.

Des exemples sont les suivants:

import Cocoa

var myString:String!

myString = "Hello, Swift!"

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

Les résultats de l'exécution du programme ci-dessus:

Hello, Swift!

Bind en option

En utilisant les fixations en option (option de liaison) pour déterminer si un type facultatif contient la valeur, si elle contient une valeur assignée à mettre une variable temporaire ou constante. En option la liaison peut être utilisé dans le cas et alors que les déclarations de juger de la valeur d'un type optionnel et attribuer une valeur à une constante ou variable.

Comme cela si déclaration écrite dans une liaison facultative:

if let constantName = someOptional {
    statements
}

Regardons une instance de liaison alternative simple:

import Cocoa

var myString:String?

myString = "Hello, Swift!"

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

Les résultats de l'exécution du programme ci-dessus:

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