Junior — Middle
Kas on võimalik lisada olemasolevale loendile, mida kasutatakse valikulise tüübi aluseks?
sobes.tech AI
Vastus AI-lt
Swiftis on enum tüübid, millel on fikseeritud väärtuste kogum. Pärast enumi määratlemist ei saa olemasolevale enumile lisada uusi juhtumeid (väärtusi).
Kui soovite funktsionaalsust laiendada või uusi väärtusi lisada, peate muutma enumi lähdekoodi või looma uue enumi.
See on tingitud sellest, et Swiftis on enum rangelt tüüp ning selle väärtuste kogum on teada kompilatsiooni ajal.
Näide:
enum Direction {
case north
case south
case east
case west
}
// Ei ole võimalik enumi määratluse väliselt lisada juhtumit northeast
Kui on vaja laiendatavust, saab kasutada teisi lähenemisviise, näiteks struktuure koos konstantide kogumitega või protokolle.