Une variable déclarée avec let est est une constante. Une fois qu’une valeur lui est attribuée il n’est plus possible de la changer.
Il est donc inutile de la déclarer private.
Si tu veux utiliser des getters/setters ton second exemple est le bon avec des variables.
Mais il est possible de modifier un let en dehors de la classe et peut-être que l’on seulement le faire via une variable calculée ou une fonction précise pour lui attribuer ce let ?
Maxime fait ceci pour Bot, où on voit le let en private
Une classe est une boîte noire gérant ces affaires par elle-même. Un accès direct à une variable publique est une faille potentielle si le domaine de validité des données est restreint.
Par exemple, imagine une classe stockant les données physique d’une personne. Pour des raisons évidentes un âge ne peut pas négatif, et être trop élevé. En utilisant une variable privée et un set pour modifier sa valeur, la classe peut effectuer une vérification de la validité des données avant de modifier l’âge.
Cela évite qu’une erreur dans le code de plus haut niveau n’altère les données en cas d’erreur de frappe. Et ce n’est pas un exemple fictif ! A la fin des années 90, la presse a relayée l’histoire de cette femme de 97 ans, que les gendarmes sont venus chercher pour l’emmener à école, un système informatique étant persuadé qu’elle avait 7 ans, un âge où la scolarité est obligatoire !
Si la modification de la variable peut se faire sans vérification du contenu, ou ne nécessite pas de traitement particulier, le set/get et le statut privé ne sont pas nécessaires.
Non une constante doit être initialisée lors de l’instantiation de la classe (ou structure)
Ensuite sa valeur est figée tu ne peux pas la modifier.
Pour les variables utiliser un get/set n’est pas la seule solution.
Tu peux passer par des fonctions pour mettre à à jour tes variables ou bien les laisser publiques et les appeler directement.
Comme dit @Draken ça dépend du contexte.
Je te dirais de commencer par créer des constante.
Puis tu les fais évoluer en fonction de ce que tu as besoin.
Si ensuite tu as besoin de modifier sa valeur a l’intérieur de la classe transforme la en private var.
PuIs si finalement tu dois changer sa valeur depuis l’extérieur de la classe créer une fonction qui prend en paramètre la nouvelle valeur.
Ou utilise un get/set.
Il faut commencer simple puis ton code évoluera en fonction de ce que tu auras besoin de faire.
Hello, si tu veux protéger certaines variables et en exposer d’autres, le plus propre est de passer par des protocols.
Toutes les variables du protocols sont donc public pour les autres class qui implémentent le protocol, et du coup toutes autres variables de ta class restent donc private.
Le fait d’en mettre private puis d’avoir une autre variable en get/set pour l’éditer est finalement peu utilise a mon sens.
Si tu veux protéger ta class, il faut la déclarer en final class (bloque les surcharge override) et passer en protocol.