Swift Academy · leksjon

Tilpasset strenginterpolering

Utvid interpolering med egne segmenter.

Leksjon 4 av 413 trinn

Tilpasset strenginterpolering er en gratis leksjon i Swift Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Swift Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Swift Academy inneholder totalt 4 leksjoner.

Egendefinert strenginterpolering

Swift lar deg utvide hvordan interpolering fungerer ved å legge til metoder i String.StringInterpolation. Dette tilpasser hva som skjer for bestemte argumenttyper eller etiketter.

extension String.StringInterpolation {
    mutating func appendInterpolation(shout value: String) {
        appendLiteral(value.uppercased() + "!")
    }
}
print("Message: \(shout: "hello")")

Metoden appendInterpolation

Hver egendefinerte interpolering er en mutating func appendInterpolation(...). Parameterne bestemmer hva du skriver mellom parentesene i en streng.

extension String.StringInterpolation {
    mutating func appendInterpolation(repeat text: String, times: Int) {
        appendLiteral(String(repeating: text, count: times))
    }
}
print("\(repeat: "ab", times: 3)")

appendLiteral og appendInterpolation

Inne i en egendefinert metode bygger du utskriften ved å kalle appendLiteral for ren tekst og gjenbruke eksisterende interpoleringer for verdier.

extension String.StringInterpolation {
    mutating func appendInterpolation(twice value: Int) {
        appendLiteral("\(value)\(value)")
    }
}
print("\(twice: 7)")

Navngitte interpoleringsargumenter

Etiketten til den første parameteren blir nøkkelordet du bruker, for eksempel \(shout: ...). Dette gjør hensikten tydelig på kallstedet.

extension String.StringInterpolation {
    mutating func appendInterpolation(currency amount: Double) {
        appendLiteral(String(format: "$%.2f", amount))
    }
}
print("Price: \(currency: 9.5)")

Flere parametere

Egendefinerte interpoleringer kan ta flere parametere, slik at du kan sende alternativer sammen med verdien.

extension String.StringInterpolation {
    mutating func appendInterpolation(_ value: Double, places: Int) {
        appendLiteral(String(format: "%.\(places)f", value))
    }
}
print("\(3.14159, places: 2)")

Formatere verdier

En vanlig bruk er å presentere en verdi på en domenespesifikk måte, for eksempel ved å fylle ut et tall til en fast bredde.

extension String.StringInterpolation {
    mutating func appendInterpolation(padded value: Int, width: Int) {
        appendLiteral(String(format: "%0\(width)d", value))
    }
}
print("ID: \(padded: 42, width: 5)")

Betinget utskrift

Egendefinert interpolering kan inneholde logikk og produsere ulik tekst basert på inndataene.

extension String.StringInterpolation {
    mutating func appendInterpolation(yesNo flag: Bool) {
        appendLiteral(flag ? "Yes" : "No")
    }
}
print("Active: \(yesNo: true)")

Gjenbruke eksisterende interpoleringer

Inne i metoden kan du kalle appendInterpolation for innebygde typer og bygge videre på standardatferden.

extension String.StringInterpolation {
    mutating func appendInterpolation(bracketed value: Int) {
        appendLiteral("[")
        appendInterpolation(value)
        appendLiteral("]")
    }
}
print("\(bracketed: 9)")

Standardverdier for parametere

Egendefinerte interpoleringer kan gi parametere standardverdier, slik at kallere kan utelate dem.

extension String.StringInterpolation {
    mutating func appendInterpolation(money value: Double, symbol: String = "$") {
        appendLiteral(symbol + String(format: "%.2f", value))
    }
}
let sym = "EUR "
print("\(money: 5.0)")
print("\(money: 5.0, symbol: sym))")

Når bør du bruke egendefinert interpolering

Bruk egendefinert interpolering når et formateringsmønster gjentas i koden. Da samler du logikken bak et ryddig kallsted.

extension String.StringInterpolation {
    mutating func appendInterpolation(stars n: Int) {
        appendLiteral(String(repeating: "*", count: n))
    }
}
print("Rating: \(stars: 4)")

Oppsummering av egendefinert interpolering

Ved å utvide String.StringInterpolation gjør du gjentatt formatering om til lesbar og gjenbrukbar syntaks som er innebygd direkte i strengene.

extension String.StringInterpolation {
    mutating func appendInterpolation(percent value: Double) {
        appendLiteral(String(format: "%.0f%%", value * 100))
    }
}
print("Done: \(percent: 0.75)")

Hurtigsjekk

Husk mekanismen bak egendefinert interpolering.

Oppsummering: Egendefinert strenginterpolering

Du har lært at du ved å utvide String.StringInterpolation med metoder for appendInterpolation kan definere ny interpoleringssyntaks, bruke appendLiteral og nestede interpoleringer til å bygge utskrift, samt bruke etiketter, flere parametere og standardverdier for ryddig og gjenbrukbar formatering.

extension String.StringInterpolation {
    mutating func appendInterpolation(upper value: String) {
        appendLiteral(value.uppercased())
    }
}
print("Hello \(upper: "swift")")
Gratis å komme i gang

Lær deg Swift med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
122
Leksjoner
409

Ofte stilte spørsmål

Er leksjonen «Tilpasset strenginterpolering» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Swift Academy, inkludert «Tilpasset strenginterpolering», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Swift Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Tilpasset strenginterpolering»?

Utvid interpolering med egne segmenter. Du øver på Swift Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Swift Academy?

Ingen tidligere erfaring er nødvendig. Swift Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Tilpasset strenginterpolering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Swift Academy-leksjonen?

Ja. Alle Swift Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende strenginterpolering
  2. Formatere tall i strenger
  3. Strengliteraler over flere linjer
  4. Tilpasset strenginterpolering
← Tilbake til Swift Academy