Comment utiliser get et set en Swift
J'ai un bloc de code simple calcul de la zone & périmètre d'un losange.
var perimeterOfRhombus: Double {
get {
let twoSides1 = sideLength1 + sideLength1
let twoSides2 = sideLength2 + sideLength2
let finalPerimeter = twoSides1 + twoSides2
return finalPerimeter
} set {
}
}
Ce que je suis en manque, c'est l'ensemble de la section.
Je veux montrer ce que sideLength1 et sideLength2 étaient au début.
Je ne suis pas sûr de ce que newValue est utilisé pour, quand il n'a pas de valeur.
Il fonctionne sans l'aide de jeu, mais je vois sur l'Apple swift
langue guide de jeu et d'obtenir l'habitude d'aller ensemble.
Si l'ensemble n'est pas vraiment nécessaire dans ce code, ce qui est normalement utilisé pour de toute façon?
Ne confondez pas votre spéciale à titre d'exemple avec le cas général. Ce serait réglage de l'aire d'un losange de dire / faire, est-il logique? Peu probable. Si votre var devrait vraiment être en lecture seule et n'ont pas de setter
Comparer les stackoverflow.com/questions/29690521/... pour une question similaire.
Comparer les stackoverflow.com/questions/29690521/... pour une question similaire.
OriginalL'auteur Carol Smith | 2016-07-19
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en se référant à en Lecture Seule les Propriétés Calculées au lieu de Propriétés Calculées.
D'une propriété calculée avec un getter, mais pas de setter est connu comme un lecture seule propriété calculée.Il renvoie toujours une valeur, et ne peut être réglé à une valeur différente.
Les Propriétés calculées ne sont pas réellement de stocker une valeur. Au lieu de cela, ils fournissent un getter et un setter pour récupérer et définir d'autres propriétés et les valeurs indirectement.
Les propriétés calculées, y compris les propriétés en lecture seule doit être définie comme une variable et non une constante.
Dans ce cas, setter peut pas être utilisée pour définir la valeur de la propriété, mais pour définir les valeurs d'autres propriétés, à partir de laquelle la propriété calculée est calculée.
Sur
newValue
, il est appelé Abréviation de Poseur de Déclaration - Si une propriété calculée de définition de la ne pas définir un nom pour la nouvelle valeur, par défaut, le nom denewValue
est utilisé.Ainsi, l'exemple ci-dessus devient
set(...)
, qui m'a éclairé 🙂OriginalL'auteur Ajith R Nayak