Sobes.tech
Junior

Čo sú voliteľné a akú úlohu zohrávajú v jazyku Swift?

sobes.tech AI

Odpoveď od AI

Voliteľ v Swift je typ, ktorý môže obsahovať hodnotu alebo nie (byť nil).

Úlohy voliteľov:

  • Spracovanie absencie hodnôt (nil-bezpečnosť).
  • Prevencia chýb pri prístupe k nil počas behu (crash).
  • Jasné určenie v kóde, kde môže chýbať hodnota.

Hlavné koncepty:

  • Deklarácia voliteľného: ValueType? alebo Optional<ValueType>
  • Priradenie nil: voliteľnému možno priradiť nil.
  • Nútené rozbalenie (!): extrahuje hodnotu, ak existuje, inak spôsobí fatálnu chybu.
  • Voliteľné viazanie (if let, guard let): bezpečne extrahuje hodnotu, ak nie je nil, vytvárajúca dočasnú konštantu alebo premennú.
  • Voliteľný reťazec (?.): umožňuje bezpečne volať metódy, pristupovať k vlastnostiam alebo indexom voliteľného.
  • Operátor zlúčenia s nil (??): poskytuje predvolenú hodnotu, ak je voliteľný nil.

Príklady použitia:

// Deklarácia voliteľného Int
var age: Int?

// Priradenie hodnoty
age = 30

// Nútené rozbalenie (nebezpečné, ak age == nil)
// let unwrappedAge = age!

// Voliteľné viazanie s if let
if let currentAge = age {
    print("Vek: \(currentAge)") // Bude vykonané, ak age nie je nil
} else {
    print("Neznámy vek") // Bude vykonané, ak age je nil
}

// Voliteľný reťazec
struct Person {
    var name: String
    var address: Address?
}

struct Address {
    var street: String
}

var person: Person? = Person(name: "Alice", address: Address(street: "Main St"))

// Pokus o získanie ulice cez voliteľný reťazec
let streetName = person?.address?.street // streetName bude String?

// Operátor zlúčenia s nil
let displayedStreet = streetName ?? "Neznáma ulica"
print(displayedStreet) // Vytlačí "Main St"