Интерполяция строки

Swift:
Интерполяция строки

Как:

Swift делает интерполяцию строк очень простой с помощью синтаксиса \(имяПеременной).

let name = "Джейн"
let age = 28
let greeting = "Привет, \(name), тебе \(age) лет."
print(greeting)  // Вывод: Привет, Джейн, тебе 28 лет.

Вы даже можете выполнять операции внутри интерполяции:

let apples = 3
let oranges = 5
let fruitSummary = "У меня есть \(apples + oranges) кусочков фруктов."
print(fruitSummary)  // Вывод: У меня есть 8 кусочков фруктов.

Подробнее

Хорошо, давайте немного о истории. Интерполяция строк не уникальна для Swift. Она существует во многих языках (например, JavaScript, Python и т.д.), но версия Swift является типобезопасной, что означает, что компилятор проверяет типы за вас, сокращая количество ошибок.

До Swift 5 интерполяция строк была менее мощной и более громоздкой. Но Swift 5 ввёл расширенную интерполяцию строк, что позволяет настраивать интерполяцию строк, предоставляя впечатляющую гибкость.

Альтернативы интерполяции строк в Swift включают конкатенацию с использованием + и более старый метод String(format:). Однако эти методы менее удобны и, для строк формата, труднее для чтения.

Детали реализации? С интерполяцией строк Swift вы можете настраивать, как типы представлены в строках, расширяя протокол StringInterpolation. Это означает, что вы можете определить, как пользовательские типы отображаются во время интерполяции, что очень удобно.

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

let today = Date()
let dateString = "Сегодняшняя дата \(today)."
print(dateString) // Вывод будет сегодняшняя дата в формате средней длины.

Смотрите также

Чтобы узнать все детали об интерполяции строк, документация Swift - кладезь знаний:

Для более глубокого погружения в форматирование пользовательских типов: