web-dev-qa-db-fra.com

Quel est le sens du point d'interrogation '?' en rapide?

Dans la programmation Swift), j'ai trouvé des points d'interrogation avec des objets.

var window: UIWindow?

Quelqu'un peut-il expliquer son utilisation?

80
Rajneesh071

Vous pouvez utiliser if et let ensemble pour gérer les valeurs éventuellement manquantes. Ces valeurs sont représentées par optionals. Une valeur optional contient une valeur ou contient nil pour indiquer que la valeur est manquante. Ecrivez un point d'interrogation (?) Après le type d'une valeur pour marquer la valeur par optional.

Si la valeur optionnelle est nil, la condition est false et le code entre accolades est ignoré. Sinon, la valeur facultative est décompressée et affectée à la constante après let, 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é.

58
Salman Zaidi

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.

20
Cezar

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.

1
Kumar KL