Junior
Ποια είναι τα περιπτώσεις στην enumeration (enum);
sobes.tech AI
Απάντηση από AI
Υπάρχουν οι ακόλουθες περιπτώσεις στην καταχώριση:
-
Περιπτώσεις ακατέργαστης τιμής: Συνδέονται με μια συγκεκριμένη τιμή του βασικού τύπου (Int, String, Character, Float). Οι τιμές ορίζονται ρητά ή παράγονται αυτόματα για τα Int και String.
enum CompassPoint: String { case north = "N" case south // rawValue δεν ορίζεται, θα είναι προεπιλεγμένο "south" case east = "E" case west = "W" } let direction = CompassPoint.north.rawValue // "N" -
Περιπτώσεις με συσχετισμένη τιμή: Μπορούν να έχουν συσχετισμένες τιμές οποιουδήποτε τύπου, που παρέχουν επιπλέον πλαίσιο ή δεδομένα. Δεν έχουν βασικό τύπο ούτε raw-value.
enum Barcode { case upc(Int, Int, Int, Int) case qrCode(String) } let productBarcode = Barcode.upc(8, 85909, 51226, 3) -
Αναδρομικές περιπτώσεις: Σημειώνονται με τη λέξη-κλειδί
indirectκαι επιτρέπουν στην καταχώριση να έχει συσχετισμένες τιμές του ίδιου τύπου καταχώρισης. Χρησιμοποιούνται για την αναπαράσταση αναδρομικών δομών δεδομένων, όπως δέντρα.indirect enum ArithmeticExpression { case number(Int) case addition(ArithmeticExpression, ArithmeticExpression) case multiplication(ArithmeticExpression, ArithmeticExpression) } let five = ArithmeticExpression.number(5) let four = ArithmeticExpression.number(4) let sum = ArithmeticExpression.addition(five, four) let product = ArithmeticExpression.multiplication(sum, ArithmeticExpression.number(2))