Sobes.tech
Junior — Middle

Milyen adattípust lehet létrehozni közvetett felsorolások használatával?

sobes.tech MI

Válasz az MI-től

Az iOS (Swift) indirekt enumerációi lehetővé teszik olyan enumerációk létrehozását, amelyek kapcsolt értékeket tartalmazhatnak, beleértve a rekurzív szerkezeteket is. Ezek segítségével összetett adattípusokat, például fákat vagy kifejezéseket lehet létrehozni.

Példa: egy rekurzív enumeráció egy aritmetikai kifejezéshez:

indirect enum AritmetikaiKifejezés {
    case szám(Int)
    case összeadás(AritmetikaiKifejezés, AritmetikaiKifejezés)
    case szorzás(AritmetikaiKifejezés, AritmetikaiKifejezés)
}

// Használat:
let öt = AritmetikaiKifejezés.szám(5)
let négy = AritmetikaiKifejezés.szám(4)
let összeg = AritmetikaiKifejezés.összeadás(öt, négy)
let szorzat = AritmetikaiKifejezés.szorzás(összeg, AritmetikaiKifejezés.szám(2))

Így az indirekt enumok lehetővé teszik rekurzív és összetett adattípusok létrehozását, amelyeket nem lehet normál enumokkal kifejezni.