Właściwości obliczane z get/set
Twórzcie właściwości obliczane (tylko do odczytu oraz do odczytu i zapisu) za pomocą get/set, wymuszajcie niezmienniki w setterach i stosujcie kontrolę dostępu, taką jak private(set).
Właściwości obliczane z get/set to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.
Omówienie
Właściwości obliczane wyznaczają wartości podczas odczytu i mogą synchronizować stan podczas zapisu. Należy ich używać, aby zachować spójność niezmienników.
Właściwość obliczana tylko do odczytu
Obliczana właściwość tylko do odczytu pomija set. Wyprowadzenia powinny być proste i tanie w obliczeniu.
struct Rectangle {
var width: Double
var height: Double
var area: Double { // read-only computed
width * height
}
}
let r = Rectangle(width: 3, height: 4)
print("area =", r.area) // 12Odczyt i zapis za pomocą get/set
Należy dodać get/set, aby utworzyć obliczaną właściwość do odczytu i zapisu, która utrzymuje powiązane wartości w synchronizacji.
struct Circle {
var radius: Double // stored
var diameter: Double { // computed read–write
get { radius * 2 }
set { radius = newValue / 2 }
}
}
var c = Circle(radius: 5)
print(c.diameter) // 10
c.diameter = 14
print(c.radius) // 7Walidacja w setterze
Settery mogą sprawdzać dane wejściowe. Jeśli nie nadano własnej nazwy, można użyć niejawnej nazwy newValue.
struct Percentage {
private var _raw: Int = 0 // backing store
var value: Int {
get { _raw }
set { // uses implicit newValue
_raw = min(100, max(0, newValue))
}
}
}
var p = Percentage()
p.value = 120
print(p.value) // 100
p.value = -5
print(p.value) // 0private(set)
Należy użyć private(set), aby udostępnić wartość do odczytu, ograniczając możliwość zapisu do samego typu.
struct ScoreBoard {
private(set) var highScore = 0 // public read, internal write
mutating func update(_ v: Int) {
if v > highScore { highScore = v }
}
}
var s = ScoreBoard()
s.update(30)
print(s.highScore)
// s.highScore = 50 // error outside the typeUwagi i wskazówki
Uwagi:
- Właściwości obliczane nie przechowują danych — obliczają je na żądanie.
- Nie obsługują willSet/didSet; logikę należy umieścić zamiast tego w set.
- Gettery powinny działać szybko; kosztowne operacje należy umieszczać w metodach.
Definicja właściwości obliczanej
Szybkie sprawdzenie: Co definiuje właściwość obliczaną?
Podsumowanie
Podsumowanie: należy tworzyć obliczane właściwości tylko do odczytu oraz do odczytu i zapisu, przeprowadzać walidację w set i używać private(set), aby kontrolować, kto może modyfikować dane.
Często zadawane pytania
Czy lekcja „Właściwości obliczane z get/set” jest bezpłatna?
Tak — pełny tekst „Właściwości obliczane z get/set” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Właściwości obliczane z get/set”?
Twórzcie właściwości obliczane (tylko do odczytu oraz do odczytu i zapisu) za pomocą get/set, wymuszajcie niezmienniki w setterach i stosujcie kontrolę dostępu, taką jak private(set). Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Właściwości obliczane z get/set”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Właściwości i subscripty
- lazy i obserwatory właściwości
- Właściwości obliczane z get/set
- Subscripty do niestandardowego indeksowania