Sobes.tech
Junior — Middle

Koji tip podataka se može kreirati koristeći indirektne liste?

sobes.tech АИ

Одговор од АИ

Neizravne enumeracije (indirect enums) u iOS (Swift) omogućavaju kreiranje enumeracija koje mogu sadržavati povezane vrednosti, uključujući rekurzivne strukture. Uz njih, moguće je kreirati složene tipove podataka, poput stabala ili izraza.

Primer: rekurzivna enumeracija za aritmetički izraz:

indirect enum AritmetičkiIzraz {
    case broj(Int)
    case sabiranje(AritmetičkiIzraz, AritmetičkiIzraz)
    case množenje(AritmetičkiIzraz, AritmetičkiIzraz)
}

// Upotreba:
let pet = AritmetičkiIzraz.broj(5)
let četiri = AritmetičkiIzraz.broj(4)
let zbir = AritmetičkiIzraz.sabiranje(pet, četiri)
let proizvod = AritmetičkiIzraz.množenje(zbir, AritmetičkiIzraz.broj(2))

Na ovaj način, neizravne enumeracije omogućavaju kreiranje rekurzivnih i složenih tipova podataka koje nije moguće izraziti običnim enumeracijama.