String interpolation inserts values into a string by writing expressions inside \(...).

Build a sentence

language
string_interpolation.swift
Replay: real traced execution (multi-file project)
let language = "Swift"
let version = 6
let sentence = "\(language) version \(version)"
let loud = sentence + "!"

print(sentence)
print(loud)
let language = "Kotlin"
let version = 6
let sentence = "\(language) version \(version)"
let loud = sentence + "!"

print(sentence)
print(loud)
let language = "Ruby"
let version = 6
let sentence = "\(language) version \(version)"
let loud = sentence + "!"

print(sentence)
print(loud)
  1. language ← Swift, version ← 6, sentence ← Swift version 6, loud ← Swift version 6!

    1let language→ Swift = "Swift"  //@language="Kotlin", "Ruby"2let version→ 6 = 63let sentence→ Swift version 6 = "\(languageSwift) version \(version6)"4let loud→ Swift version 6! = sentenceSwift version 6 + "!"56print(sentenceSwift version 6)7print(loudSwift version 6!)
    outputSwift version 6
    Swift version 6!
  1. language ← Kotlin, version ← 6, sentence ← Kotlin version 6, loud ← Kotlin version 6!

    1let language→ Kotlin = "Kotlin"2let version→ 6 = 63let sentence→ Kotlin version 6 = "\(languageKotlin) version \(version6)"4let loud→ Kotlin version 6! = sentenceKotlin version 6 + "!"56print(sentenceKotlin version 6)7print(loudKotlin version 6!)
    outputKotlin version 6
    Kotlin version 6!
  1. language ← Ruby, version ← 6, sentence ← Ruby version 6, loud ← Ruby version 6!

    1let language→ Ruby = "Ruby"2let version→ 6 = 63let sentence→ Ruby version 6 = "\(languageRuby) version \(version6)"4let loud→ Ruby version 6! = sentenceRuby version 6 + "!"56print(sentenceRuby version 6)7print(loudRuby version 6!)
    outputRuby version 6
    Ruby version 6!

Follow the Sentence

  1. language starts as Swift.
  2. version is 6.
  3. sentence becomes Swift version 6.
  4. loud adds ! to make Swift version 6!.
  5. The program prints both lines. | language | sentence | loud | | --- | --- | --- | | Swift | Swift version 6 | Swift version 6! | | Kotlin | Kotlin version 6 | Kotlin version 6! | | Ruby | Ruby version 6 | Ruby version 6! |
interpolation Inside a string literal, `\(value)` evaluates the value and inserts its text.

Exercise: string_interpolation.swift

Reproduce Swift version 6 and Swift version 6!, then use Kotlin and Ruby to predict both printed lines.