To faktycznie wyjaśnił tuż przed kodem:
Oprócz prostych właściwości, które są składowane, właściwości może mieć getter i setter.
class EquilateralTriangle: NamedShape {
...
Kiedy jakaś inna klasa chce dostać tę zmienną obwodowej, robią to:
let someVar = myTriangle.perimeter
... Który nazywa to:
get{
return 3.0 * self.sideLength
}
I tak w zasadzie to tak, jakby kontroler dzwoniący zrobił to:
let someVar = 3.0 * myTriangle.sideLength
Kiedy ustawić zmienna od innego obiektu, wygląda to tak:
myTriangle.perimeter = 100
Które wywołuje kod w bloku set{}
:
set {
sideLength = newValue/3.0
}
i tak to tak, jakby klasa, która ustawiła zmienną, wykonała to:
myTriangle.sideLength = 100/3.0
To naprawdę tylko dla wygody - można nazwać to z innym kodem bez konieczności dzielenia przez lub pomnożyć przez 3 cały czas, bo to jest zrobione tuż przed ustawieniem zmiennej i tuż przed uzyskać zmienną.
W Swift możemy mieć właściwości, które są obliczane, gdy otrzymamy i możemy coś zrobić po ustawieniu.Możemy to zrobić w Objective-C za:
// .h
@property (nonatomic) double perimeter;
//.m
- (double)perimeter
{
return self.sideLength * 3.0;
}
- (void)setPerimeter:(double)perimeter
{
self.perimeter = perimeter; // In Swift, this is done automatically.
self.sideLength = perimeter/3.0;
}
Komentarze wyczyszczone – vol7ron
Czytałaś str 21 o getter/setter. Co więcej, pierwsze 30 pgs to * wycieczka * Swift, a nie pełna dokumentacja. – vol7ron
Jeśli zrobiłeś C++, możesz współtworzyć te rzeczy z funkcjami gettera i settera z klasy – AbhimanyuAryan