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.