Sobes.tech
Junior — Middle

Jaký typ dat lze vytvořit pomocí nepřímých výčtů?

sobes.tech AI

Odpověď od AI

Nepřímé výčty (indirect enums) v iOS (Swift) umožňují vytvářet výčty, které mohou obsahovat přiřazené hodnoty, včetně rekurzivních struktur. S jejich pomocí lze vytvářet složité datové typy, například stromy nebo výrazy.

Příklad: rekurzivní výčet pro aritmetický výraz:

indirect enum AritmetickýVýraz {
    case číslo(Int)
    case součet(AritmetickýVýraz, AritmetickýVýraz)
    case násobení(AritmetickýVýraz, AritmetickýVýraz)
}

// Použití:
let pět = AritmetickýVýraz.číslo(5)
let čtyři = AritmetickýVýraz.číslo(4)
let součet = AritmetickýVýraz.součet(pět, čtyři)
let součin = AritmetickýVýraz.násobení(součet, AritmetickýVýraz.číslo(2))

Tímto způsobem nepřímé výčty umožňují vytvářet rekurzivní a složité datové typy, které nelze vyjádřit běžnými výčty.