Een string interpoleren

Swift:
Een string interpoleren

Hoe:

Swift maakt stringinterpolatie een fluitje van een cent met de syntax \(variabeleNaam).

let naam = "Jane"
let leeftijd = 28
let begroeting = "Hallo, \(naam), je bent \(leeftijd) jaar oud."
print(begroeting)  // Uitvoer: Hallo, Jane, je bent 28 jaar oud.

Je kunt zelfs operaties uitvoeren binnen de interpolatie:

let appels = 3
let sinaasappels = 5
let fruitSamenvatting = "Ik heb \(appels + sinaasappels) stuks fruit."
print(fruitSamenvatting)  // Uitvoer: Ik heb 8 stuks fruit.

Diepere Duik

Okay, laten we een beetje historisch worden. Stringinterpolatie is niet uniek voor Swift. Het bestaat in veel talen (zoals JavaScript, Python, etc.), maar de versie van Swift is type-veilig wat betekent dat de compiler de typen voor je controleert, waardoor fouten worden verminderd.

Voor Swift 5 was stringinterpolatie minder krachtig en omslachtiger. Maar Swift 5 introduceerde Uitgebreide Stringinterpolatie, waardoor je stringinterpolatie kunt aanpassen, wat indrukwekkende flexibiliteit biedt.

Alternatieven voor stringinterpolatie in Swift omvatten concatenatie met +, en de oudere String(format:) methode. Echter, deze zijn minder handig en, voor format strings, moeilijker te lezen.

Implementatiedetails? Met Swift’s stringinterpolatie kun je aanpassen hoe typen worden weergegeven binnen strings door het StringInterpolation protocol uit te breiden. Dit betekent dat je kunt definiëren hoe aangepaste typen worden weergegeven tijdens interpolatie, wat super handig is.

extension String.StringInterpolation {
    mutating func appendInterpolation(_ waarde: Date) {
        let formatter = DateFormatter()
        formatter.dateStyle = .medium
        appendLiteral(formatter.string(from: waarde))
    }
}

let vandaag = Date()
let datumString = "De datum van vandaag is \(vandaag)."
print(datumString) // Uitvoer zal de datum van vandaag zijn in middelmatige stijlformattering.

Zie Ook

Voor de fijne kneepjes over stringinterpolatie, Swift’s documentatie is goud waard:

Voor dieper duiken in het formatteren van aangepaste typen: