Swift Academy · Lektion

Råvärden och CaseIterable

Skapa enum-typer med String, Int eller andra RawRepresentable-typer som grund samt allCases.

Lektion 1 av 412 steg

Råvärden och CaseIterable är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.

Välkommen

Swift-enum kan ha *råvärden* — bokstavliga värden som lagras med varje case. Om du konformerar med `CaseIterable` får du automatiskt en samling med alla cases.

Enum med råvärden

```swift enum Direction: String { case north = "N" case south = "S" case east = "E" case west = "W" } print(Direction.north.rawValue) // "N" ```

Automatiskt inkrementerade Int-råvärden

```swift enum Planet: Int { case mercury = 1 case venus // 2 (auto) case earth // 3 case mars // 4 } print(Planet.earth.rawValue) // 3 ```

String-råvärden namnges automatiskt

```swift enum Color: String { case red, green, blue } print(Color.blue.rawValue) // "blue" — auto-named ``` Med String-råvärden blir råvärdet samma som case-namnet om du utelämnar tilldelningen.

init?(rawValue:) – kan misslyckas

```swift if let dir = Direction(rawValue: "N") { print(dir) // Direction.north } let invalid = Direction(rawValue: "X") // nil ``` Den automatiskt genererade initieraren som kan misslyckas returnerar nil för okända råvärden.

CaseIterable

```swift enum Season: CaseIterable { case spring, summer, autumn, winter } print(Season.allCases) // [.spring,.summer,.autumn,.winter] print(Season.allCases.count) // 4 ```

Iterera över alla cases

```swift for season in Season.allCases { print(season) } let picker = Season.allCases.map { "\($0)".capitalized } ```

CaseIterable med råvärden

```swift enum Suit: String, CaseIterable { case hearts="♥", diamonds="♦", clubs="♣", spades="♠" } print(Suit.allCases.map { $0.rawValue }) // ["♥","♦","♣","♠"] ```

Råvärden för Codable

Enum med String-råvärden fungerar sömlöst med `Codable`: ```swift enum Status: String, Codable { case active, inactive, pending } struct User: Codable { var status: Status } // JSON "active" decodes to .active automatically ```

Råvärden för flaggbitmasker

```swift struct Permission: OptionSet { let rawValue: Int static let read = Permission(rawValue: 1 << 0) static let write = Permission(rawValue: 1 << 1) static let execute = Permission(rawValue: 1 << 2) } var p: Permission = [.read, .write] print(p.contains(.read)) // true ```

Snabbkontroll

Vilket protokoll gör alla enumens cases åtkomliga via `allCases`?

Sammanfattning

Viktiga punkter: • Råvärden: `enum E: String { case a = "x" }` • Int-råvärden inkrementeras automatiskt; String-råvärden får som standard case-namnet • `init?(rawValue:)` genereras automatiskt och kan misslyckas • `CaseIterable` tillhandahåller den statiska egenskapen `.allCases` • Kombinera `String, CaseIterable` för menyer och väljare Nästa avsnitt: associerade värden.
Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
122
Lektioner
409

Vanliga frågor

Är lektionen ”Råvärden och CaseIterable” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Råvärden och CaseIterable”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Råvärden och CaseIterable”?

Skapa enum-typer med String, Int eller andra RawRepresentable-typer som grund samt allCases. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Swift Academy?

Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Råvärden och CaseIterable”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Swift Academy-lektionen?

Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Råvärden och CaseIterable
  2. Associerade värden för rika data
  3. Indirekta enum-typer och rekursiva strukturer
  4. Modellera tillståndsmaskiner med enum-typer
← Tillbaka till Swift Academy