[Swift] Au contraire, il est significatif d'éviter var et de le déclarer avec let uniquement lorsqu'il y a une branche dans l'affectation de la valeur initiale.

Environnement prérequis:

Non limité à Swift, «éviter la réaffectation à des variables (autant que possible)» est largement compris comme une théorie pour écrire du code sécurisé.

Liens connexes: Pourquoi voulez-vous éviter de réaffecter à des variables

Cependant, en pratique, il est facile de penser que vous devez écrire le code de réaffectation dans le cas où il y a une branche dans l'attribution de la valeur initiale comme indiqué ci-dessous.

Échantillon A


//La variable foo est ""hoge" or "fuga"L'intention est que l'un d'entre eux soit initialisé et ne changera pas après cela. "
var foo = ""
if isHoge {
    foo = "hoge"
} else {
    foo = "fuga"
}

Le code ci-dessus ne peut pas empêcher la réaffectation à la variable «foo». Il reste possible que foo soit mis à une valeur autre que (" hoge "ou" fuga ") quelque part.

Le code ci-dessus peut être amélioré comme suit.

Échantillon B


let foo: String
if isHoge {
    foo = "hoge"
} else {
    foo = "fuga"
}

** S'il y a un chemin qui n'est pas initialisé, le compilateur fera une erreur **, donc si vous avez l'intention de "définir une fois la valeur initiale et ne pas la réaffecter",

À cet égard, je pense que le code de l'exemple B est plus sûr.

Recommended Posts

[Swift] Au contraire, il est significatif d'éviter var et de le déclarer avec let uniquement lorsqu'il y a une branche dans l'affectation de la valeur initiale.
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
[Java] Lors de la mise d'une chaîne de caractères dans le cas de l'instruction switch, il est nécessaire d'en faire une expression constante
Comment résoudre le problème lorsque la valeur n'est pas envoyée lorsque le formulaire est désactivé dans les rails et envoyé
Dans Swift, lors de la purge de JSON, il est passé dans le cas du serpent et la méthode d'adaptation gênante
[Ruby] Penser quand il n'y a pas de récepteur devant la méthode (ça ressemble à)
[Swift] Obtenez le moment où la valeur de textField est modifiée
[Swift] Lorsque vous voulez savoir si le nombre de caractères dans String correspond à un certain nombre ...
Lancer une exception et attraper lorsqu'il n'y a pas de gestionnaire correspondant au chemin au printemps
Représentez graphiquement les informations du capteur de Raspberry Pi en Java et vérifiez-les avec un navigateur Web
Générez un numéro de série avec TableGenerator of Hibernate (JPA) et stockez-le dans l'ID de String.
[Java] Affiche le résultat de ffprobe -show_streams dans JSON et mappe-le à un objet dans Jackson
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Ruby] Je souhaite extraire uniquement la valeur du hachage et uniquement la clé
[Petite histoire Java] Surveiller lorsqu'une valeur est ajoutée à la liste
Valeur initiale lorsqu'il n'y a pas de propriété de l'objet de formulaire dans la requête Spring
Comment changer la valeur d'une variable à un point d'arrêt dans intelliJ
Est-il possible de mettre la bibliothèque (aar) dans la bibliothèque Android (aar) et de l'utiliser?
[Note] [Débutant] Comment écrire lors de la modification de la valeur d'un élément de tableau dans une phrase répétée de Ruby
Lors de la réaffectation à un argument dans une méthode Ruby puis en appelant `super` → Celui réaffecté est utilisé
J'ai essayé de créer une application Web qui recherche les tweets avec vue-word cloud et examine la tendance de ce qui est écrit dans le profil associé