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 - кладезь знаний:
Для более глубокого погружения в форматирование пользовательских типов: