Основы Swift. Интерполяция строк и аннотация типов данных

В предыдущей статье мы рассказали об основных типах данных в Swift, а сегодня поговорим об автоматическом определении их типа (аннотации), а также интерполяции строк (создании нового значения из нескольких констант и переменных).

Автоматическая аннотация типов данных

В языке Swift существует два способа указать тип данных, которые хранятся в переменной:

  1. Присвоить первоначальное значение при инициализации
  2. Применить метод аннотации типов.

Вместо:

var name: String
name = "Tim McGraw"

Лучше использовать:

var name = "Tim McGraw"

Это касается всех типов данных:

var age = 25
var longitude = -86.783333
var nothingInBrain = true

Это метод автоматической аннотации: Swift предвидит, какой тип данных следует использовать для переменной в зависимости от введенных данных. Если ввести число вроде -86,783333, Swift отдаст предпочтение типу Double.

Возможность автоматически определять тип данных, присвоенных переменной — важная особенность Swift. Разработчики на Swift могут не аннотировать переменные, Swift сам определит их тип, исходя из присвоенного значения. Такое автоматическое определение типов данных повышает надежность всей системы типов (типобезопасность) и позволяет оптимизировать процесс компиляции кода.

Операторы в Swift

Прежде, чем обращаться к вопросу интерполяции строк, давайте посмотрим, какие основные операторы доступны в Swift:

  1. Арифметические операторы сложения (+), вычитания (–), умножения (*) и деления (/).
  2. Оператор инкремента (++) и оператор декремента (––), которые соответственно добавляют и вычитают единицу.
  3. Составные операторы присваивания: присваивание со сложением (+=), присваивание с вычитанием (–=).
  4. Операторы сравнения: больше (>), меньше (<), больше или равно (>=), меньше или равно (<=), равно (==), не равно (!=).

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

За этим сложным названием кроется очень простое действие: объединение переменных и констант внутри строки.

Удалите код, который вы ввели ранее и оставьте только эту строку:

var name = "Tim McGraw"

Если нужно показать пользователю сообщение с его именем, интерполяция строк поможет упростить этот процесс. Вы просто вставляете обратную косую черту, ставите открывающую скобку, пишите код и добавляете закрывающую скобку:

var name = "Tim McGraw"
"Your name is \(name)"

На панели результатов в одну строку отобразится текст «Your name is Tim McGraw», поскольку интерполяция объединила две отдельные строки в одну.

Такого же результата можно добиться, используя оператор «+»:

var name = "Tim McGraw"
"Your name is " + name

Но этот способ нецелесообразен, в особенности, когда нужно объединить сразу несколько переменных разных типов.

Кроме того, интерполяция строк в Swift распознает разные типы данных автоматически. Например:

var name = "Tim McGraw"
var age = 25
var latitude = 36.166667
"Your name is \(name), your age is \(age), and your latitude is \(latitude)"

Выполнить операции выше с помощью оператора «+» значительно сложнее, поскольку Swift не позволяет добавлять данные типа Integer и Double в строки.

Сейчас результаты выполнения кода уже могут не помещаться на панели результатов. Чтобы отобразить результаты, измените размер окна или наведите указатель мыши на результат и щелкните кнопку «+», которая появится.

Одна из важных возможностей интерполяции строк это то, что между \( и ) может находиться целое выражение на Swift, например:

var age = 25
"You are \(age) years old. In another \(age) years you will be \(age * 2)."

Сегодня мы узнали об автоматическом аннотировании типов данных в Swift, которое предупреждает ошибки присвоения переменной неверного значения, и процедуре интерполяции строк, с помощью которой можно объединить несколько переменных и констант внутри одной строки. В следующий раз мы поговорим о массивах.

Источник: Hacking with Swift

Читайте далее: Основы Swift. Массивы

Нужен MVP, разработка под iOS, Android или прототип приложения? Ознакомьтесь с нашим портфолио и сделайте заказ уже сегодня!

About author

iOS Developer
Sergei knows all the latest Apple news, enjoys sharing knowledge and is teaching the ins and outs of Swift at our courses.

Related posts

Return to list Return to list