Sobes.tech
Middle+

Co je herec?

sobes.tech AI

Odpověď od AI

Herec (Actor) ve Swift je typ, který izoluje svůj stav, zabraňuje současnému přístupu z různých vláken a tím odstraňuje závody o data.

Hlavní vlastnosti:

  • Izolace stavu: Všechny vlastnosti herce jsou přístupné pouze z jeho metod nebo z jiných herců s odpovídajícími modifikátory přístupu.
  • Asynchronní interakce: Volání metod herce zvenčí jsou vždy asynchronní a vyžadují await. To zajišťuje, že přístup ke stavu je atomický.
  • Žádné dědičnosti: Herci nepodporují dědičnost.
  • Nepřítomnost nonisolated let: Vlastnosti mohou být označeny jako nonisolated, pokud jsou konstanty (let) a mají bezpečný typ pro vlákna. To umožňuje přístup bez await.

Příklad:

actor Counter {
    private var value = 0

    func increment() {
        value += 1
    }

    func getValue() -> Int {
        return value
    }
}

Použití:

// Asynchronní volání je nutné kvůli izolaci
let myCounter = Counter()
await myCounter.increment()
let currentValue = await myCounter.getValue()

Herci jsou klíčovou součástí nového konkurenčního modelu ve Swiftu, poskytující bezpečný a strukturovaný způsob správy sdíleného měnitelného stavu v vícevláknových aplikacích.