Int sans valeur (set int pour aucune valeur)
Je veux créer un Int qui n'a pas de valeur (une déjà existante variable). Si je fais cela;
number = Int()
alors il a encore de la valeur 0
. Je ne veux rien, une inexistant valeur.
- Le seul moyen est une option
Int?
- Vous avez besoin d'Options: developer.apple.com/library/ios/documentation/Swift/Conceptual/...
var number: Int?
Vous devez vous connecter pour publier un commentaire.
Chaque type peut effectivement être définie à une valeur vide aka
nil
!Pour créer une variable qui peut être réglé pour
nil
, vous devez écrire le nom de type explicitement avec un?
ou!
(je vais parler de la différence plus tard, à la fin.Par exemple, si vous voulez un
Int
qui peut être réglé pournil
, déclarer une variable avec le nom du type:et puis vous ajoutez un
?
:Ensuite, vous pouvez définir
myInt
ànil
, ou quelles que soient les valeurs que vous voulez:Ce type-nom-avec-? la notation est connu comme "Option de Types" de Swift.
Non seulement vous pouvez utiliser les options dans les variables et les constantes, vous pouvez également l'utiliser dans la méthode/fonction signatures:
Bien, alors quelle est la différence entre
!
et?
?!
agit comme types de référence en Java et en C#. Et?
est comme un plus sûr de la version de!
.Disons qu'il y a une option
Int
appelémyInt
. Vous souhaitez accéder à sesdescription
.Si
myInt
ont été déclarés commelet myInt: Int?
,Si
myInt
ont été déclarés commelet myInt: Int!
Avis que la question de la marque, vous devez ajouter un point d'interrogation à la fin de chaque fois que vous devez accéder à la propriété/méthode de
myInt
. Ceci est appelé le "Déballage, une option de type".Un type avec le
!
suffixe est appelé un "Implicitement Déballé en Option de Type". Lorsque vous travaillez avec ces types, vous n'avez pas besoin de déballer. Toutefois, simyInt
estnil
, il y aura une erreur! Ce n'est pas le cas avec les?
types parce que l'ensemble de l'expression juste retournil
simyInt
estnil
.C'est juste quelque chose que je pense que vous devriez remarque lorsque vous travaillez avec des options la première fois.
Vous avez besoin d'une Option
Int
. En mettant une question '?' marque vous initialisez qui fait de néant.Consulter ce lien pour plus de détails
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html