0Pricing
Swift Academy · Lekcja

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)  // 12

Odczyt 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)     // 7

Walidacja 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)  // 0

private(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 type

Uwagi 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

  1. Właściwości i subscripty
  2. lazy i obserwatory właściwości
  3. Właściwości obliczane z get/set
  4. Subscripty do niestandardowego indeksowania
← Powrót do Swift Academy