Swift Optionals - La liaison variable dans une condition nécessite un initialiseur
Je suis nouveau à Swift et à essayer de comprendre l'Option concept. J'ai un petit morceau de code dans l'aire de Jeux qui me donne de l' "Variable de liaison dans un état de santé nécessite un initialiseur d'erreur". Quelqu'un peut-il expliquer pourquoi et comment puis-je résoudre ce problème?
Je ne veux imprimer "Oui" ou "Non" selon que "score1" a une valeur ou non. Voici le code:
import Cocoa
class Person {
var score1: Int? = 9
func sum() {
if let score1 {
print("yes")
} else {
print("No")
}
}//end sum
}//end person
var objperson = person()
objperson.sum()
source d'informationauteur Harry | 2015-08-20
Vous devez vous connecter pour publier un commentaire.
Le si de laisser instruction est une variable optionnelle. Si il est nul, le bloc else ou rien n'est exécuté. Si elle a une valeur, la valeur est affectée à une variable différente en tant que non-type facultatif.
Ainsi, le code suivant affiche la valeur de score1 ou "Non" si il n'y a aucun:
Une version plus courte de la même serait:
Dans votre cas, où vous n'avez pas utiliser la valeur stockée dans la variable en option, vous pouvez également vérifier si la valeur est nulle:
Écrit
ne fait pas de sens. Si vous voulez voir si le score a une valeur, utilisez
ou
Le dernier cas se lie à un nouveau non-facultatif constante
score
àscore1
. Cela vous permet d'utiliserscore
à l'intérieur de l'instruction if.le problème est que
if let
suppose vous souhaitez créer une constantescore1
avec une certaine valeur. Si vous voulez juste pour vérifier si elle contient une valeur, comme dans pasnil
vous devriez juste faire comme ci-dessous:De sorte que votre code devrait ressembler à ceci: