Dans la programmation Swift), j'ai trouvé des points d'interrogation avec des objets.
var window: UIWindow?
Quelqu'un peut-il expliquer son utilisation?
Vous pouvez utiliser
if
etlet
ensemble pour gérer les valeurs éventuellement manquantes. Ces valeurs sont représentées paroptionals
. Une valeuroptional
contient une valeur ou contientnil
pour indiquer que la valeur est manquante. Ecrivez un point d'interrogation (?) Après le type d'une valeur pour marquer la valeur paroptional
.Si la valeur optionnelle est
nil
, la condition estfalse
et le code entre accolades est ignoré. Sinon, la valeur facultative est décompressée et affectée à la constante aprèslet
, ce qui rend la valeur décompactée disponible à l'intérieur du bloc de code.
Extrait de: Apple Inc. "Le langage de programmation Swift."). "IBooks. https://itun.es/pk/jEUH0.l
Par exemple:
var optionalString: String? = "Hello"
optionalString == nil
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
Dans ce code, la sortie serait Hello! John Appleseed
. Et si nous définissons la valeur de optionalName
comme nil
. Le résultat conditionnel if
serait false
et le code à l'intérieur duquel if
serait ignoré.
Les points d’interrogation après un type font référence à Optionals
, une entrée Swift) qui vous permet d’indiquer la possibilité qu’une valeur puisse être absente pour n’importe quel type, sans nécessiter de des constantes.
Il est utilisé dans les mêmes situations que celles que vous aviez explicitement return nil
en Objective-C, lorsqu'il n'y a pas d'objet à renvoyer, ou pour des valeurs qui ne sont pas des objets, des constantes telles que NSNotFound
. Les options fournissent un moyen cohérent d’atteindre cet objectif dans tous les types de données.
De l'iBook fourni par Apple fourni
Vous utilisez des options dans des situations où une valeur peut être absente. Un optionnel dit:
- Il y a une valeur, et c'est égal à x
ou
- Il n’ya pas de valeur du tout
Voici un exemple. Le type String de Swift a une méthode appelée toInt, qui tente de convertir une valeur String en une valeur Int. Cependant, toutes les chaînes ne peuvent pas être converties en un entier. La chaîne "123" peut être convertie en valeur numérique 123, mais la chaîne "hello, world" n'a pas de valeur numérique évidente à convertir.
let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber is inferred to be of type "Int?", or "optional Int"
Étant donné que la méthode toInt peut échouer, elle renvoie un Int facultatif, plutôt qu'un Int. Un Int facultatif est écrit Int ?, pas Int. Le point d'interrogation indique que la valeur qu'il contient est facultative, ce qui signifie qu'il peut contenir une valeur Int ou ne pas contenir de valeur du tout. (Il ne peut contenir rien d’autre, comme une valeur Bool ou une valeur String. C’est un Int ou rien du tout.)
Il existe toute une section sur la référence linguistique iBook sur les options, et elles sont mentionnées à plusieurs reprises dans le livre. Vous devriez l'examiner de manière approfondie, car il s'agit d'un concept fondamental de la programmation Swift) et qui n'est pas répandu dans de nombreuses autres langues.
la valeur optionnelle du type.
Pour Ex: la version facultative de l'opérateur de transtypage: as?
, signifie as
à utiliser pour le transtypage avec peut être facultatif.