0Pricing
Swift Academy · Lekcja

Właściwości obliczane w strukturach

Wyznaczanie wartości za pomocą właściwości obliczanych tylko do odczytu oraz get/set.

Właściwości obliczane w strukturach 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.

Wprowadzenie

Obliczane właściwości nie przechowują wartości — obliczają ją i zwracają na żądanie. Dla wywołującego wyglądają jak właściwości, ale wewnętrznie wykonują kod.

Obliczana właściwość tylko do odczytu

```swift struct Circle { var radius: Double var area: Double { .pi * radius * radius } var circumference: Double { 2 * .pi * radius } } var c = Circle(radius: 5) print(c.area) // 78.53... ```

get i set

```swift struct Temperature { var celsius: Double var fahrenheit: Double { get { celsius * 9/5 + 32 } set { celsius = (newValue - 32) * 5/9 } } } var t = Temperature(celsius: 0) print(t.fahrenheit) // 32 t.fahrenheit = 212 print(t.celsius) // 100 ```

Skrócony get — pomijanie słowa kluczowego get

W przypadku właściwości tylko do odczytu opakowanie `get { }` jest opcjonalne: ```swift var area: Double { .pi * radius * radius } // same as { get { ... } } ```

newValue w set

Wewnątrz `set` nadchodząca wartość jest domyślnie nazywana `newValue`: ```swift set { celsius = (newValue - 32) * 5/9 } ``` Można też nadać jej nazwę jawnie: ```swift set(degF) { celsius = (degF - 32) * 5/9 } ```

Obliczane właściwości nie są przechowywane

Obliczane właściwości nie mają wewnętrznego miejsca przechowywania — każdy odczyt wykonuje kod: ```swift struct Stats { var scores: [Int] var average: Double { guard !scores.isEmpty else { return 0 } return Double(scores.reduce(0,+)) / Double(scores.count) } } ```

Statyczne obliczane właściwości

```swift struct Config { static var appName: String { Bundle.main.infoDictionary?["CFBundleName"] as? String ?? "App" } } print(Config.appName) ```

Obliczane właściwości w protokołach

```swift protocol Greetable { var greeting: String { get } } struct Person: Greetable { var name: String var greeting: String { "Hello, \(name)!" } } ``` Protokoły mogą wymagać obliczanych właściwości — wystarczy określić `{ get }` lub `{ get set }`.

Wydajność właściwości obliczanych i przechowywanych

• Obliczana: przeliczana przy każdym odczycie — należy unikać kosztownych obliczeń we właściwościach często odczytywanych • W przypadku kosztownych wartości obliczanych tylko raz należy użyć `lazy var`: ```swift lazy var thumbnail: UIImage = generateThumbnail() ```

Ciało wyrażeniowe a blok

Obliczane właściwości zawierające pojedyncze wyrażenie w Swift 5.9+ zwracają wartość niejawnie: ```swift var fullName: String { "\(first) \(last)" } // equivalent to: var fullName: String { return "\(first) \(last)" } ```

Szybkie sprawdzenie

Jaka jest domyślna nazwa nadchodzącej wartości wewnątrz bloku właściwości `set`?

Podsumowanie

Najważniejsze informacje: • Obliczane właściwości wykonują kod przy każdym odczycie — nie mają przechowywanej wartości bazowej • Tylko do odczytu: pomiń `get`/`set` lub użyj skróconej postaci `{ return ... }` • Do odczytu i zapisu: podaj bloki `get` i `set(newValue)` • Świetnie nadają się do wartości pochodnych, takich jak `area`, `fullName` i konwersje jednostek • Używaj `lazy` dla kosztownych wartości obliczanych tylko raz Dalej: metody mutujące.

Często zadawane pytania

Czy lekcja „Właściwości obliczane w strukturach” jest bezpłatna?

Tak — pełny tekst „Właściwości obliczane w strukturach” 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 w strukturach”?

Wyznaczanie wartości za pomocą właściwości obliczanych tylko do odczytu oraz get/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 w strukturach”?

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. Inicjalizatory składowe i niestandardowe inicjalizatory
  2. Przechowywane właściwości i obserwatory właściwości
  3. Właściwości obliczane w strukturach
  4. Metody mutujące i semantyka Copy-on-Write
← Powrót do Swift Academy