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

Константы и переменные

Константы и переменные в Swift связывают имя с заданным значением. В то время как значения переменных могут измениться в любое время, значения констант не могут измениться после присвоения значения. Переменные объявляются с помощью ключевого слова «var», а константы — с ключевым словом «let».

var name = "Joseph"
name = "Joseph O."
let lastname = "Ajibodu"
//lastname = "Another Name" // (This will give an error)

Также полезно отметить, что вы можете объявить несколько переменных/констант в одной строке.

let x = 0.0, y = 0.0, z = 0.0

Типовая аннотация

Аннотация типа, которая также может означать, что объявление типа явно объявляет тип значения, которое может хранить переменная.

// Syntax: var/let <variableName>: Type
var title: String = "Mr"
var gender: String
let size: Int

Примечание. Несколько связанных переменных/констант одного типа могут быть определены в одной строке с аннотацией одного типа после имен переменных.

var green, red, blue: Double

Руководство по именованию переменных/констант

Подобно другим языкам программирования, константы и переменные:

  • может содержать символы Unicode
  • без пробелов, математические символы, стрелки, символы рисования линий и прямоугольников, скалярные векторы Unicode для частного использования
  • не может начинаться с цифры

Печать в консоль

Это так же просто, как ввести ключевое слово «print()» и поместить строку для печати в круглые скобки.

print("Hello World!")
print(name)

Чтобы включить значение переменной/константы в строку для печати, Swift упрощает интерполяцию строк. Заключите имя переменной в скобки() и закройте его обратной косой чертой\ перед открывающей скобкой: \(имя_переменной) следующим образом:

var age = 34
print("The current value is \(age)") 
// Will output: The current value is 34

Комментарии

Как и в других языках программирования, однострочные комментарии обозначаются двойной косой чертой (//), а многострочные комментарии обозначаются /* — — */.

//Single Line comment
/* 
   Multi
   Line
   Comment
*/

Точки с запятой

Точки с запятой, как и во многих современных языках программирования, не обязательны, но могут использоваться. Однако это необходимо, когда у вас есть несколько операторов в одной строке.

let 😇 = "Happy!";print(😇);

Типы данных — целое число

Целые числа – это целые числа без дробной части, например 42 и -23. Целые числа могут быть либо со знаком (положительными, нулевыми или отрицательными), либо беззнаковыми (положительными или нулевыми).

Swift предоставляет целые числа со знаком и без знака в 8, 16, 32 и 64-битных формах. У нас есть Int8, Int16, Int32, Int64 как целые числа со знаком 8, 16, 32, 64 бит соответственно. Int следует использовать там, где не требуется конкретный диапазон. То же самое относится к целым числам без знака (UInt).

let val: UInt8 = 4
let maxValue = UInt8.max; print(maxValue);
let minValue = UInt8.min; print(minValue);

Типы данных — с плавающей запятой

Числа с плавающей запятой — это числа с дробной частью. У нас есть Double — 64-битное число с плавающей запятой, и Float — 32-битное число с плавающей запятой.

var pi: Double = 3.142

Безопасность типов и вывод типов

Swift — это типобезопасный язык. Типобезопасный язык побуждает вас четко понимать, с какими типами значений может работать ваш код. Если часть вашего кода требует String, вы не можете передать Int по ошибке.

Поскольку Swift является типобезопасным, важно объявлять тип каждой переменной/константы, используемой в вашем коде. Но в случае, когда вы не объявили тип переменной/константы, swift может определить тип переменной на основе типа значения, присвоенного переменной, это называется выведением типа.

let randomValue = 43;
// Swift infers the type to be Int
var pi = 3.142
// Swift infers the type to be Double
let anotherPi = 3 + 0.14159
// Swift infers the type to be Double

Числовые литералы

Вы можете дополнять числа или добавлять символы подчеркивания, чтобы улучшить читаемость чисел, как показано ниже:

let userId = 000123
let justOverOneMillion = 1_000_000.000
let exponentDouble = 1.21875e3 // 1.21875 x 10^3

Преобразование числового типа

Преобразование должно быть выполнено в допустимом диапазоне, например. вы не можете преобразовать -45 в UInt, поскольку минимальное значение UInt равно 0 (-45 не входит в диапазон UInt).

Чтобы преобразовать один конкретный тип номера в другой, вы инициализируете новый номер нужного типа существующим значением. См. примеры ниже:

let num1 = 4.23 // Inferred type is Double
let num2 = Int(num1) // Converted to Int
let num3 = UInt(num1) // Converted to UInt
print(num2)

let three = 3 // Inferred Type is Int
let pointOneFourOneFiveNine = 0.14159 // Inferred Type is Double
let pi1 = Double(three) + pointOneFourOneFiveNine 
print(pi1)

Введите псевдоним

Псевдонимы типов определяют альтернативное имя для существующего типа. Вы определяете псевдонимы типов с помощью ключевого слова typealias.

typealias AudioSample = UInt16
// Now AudioSample is an alias for UInt16
var currentAmplitude: AudioSample = 14
var maxAmplitudeFound = AudioSample.min

Тип данных — логический

Логические значения — это логические значения, которые могут принимать значения true или false. Логический тип может быть объявлен с помощью ключевого слова Bool.

let isValue = true // Inferred as Bool
let isAbsent: Bool = false

Тип данных — кортежи

Кортежи группируют несколько значений в одно составное значение. Значения в кортеже могут быть любого типа и могут быть представлены круглыми скобками (), разделенными запятой.

let score1 = ("joseph", 89)
// score1 is of type (String, Int)

Кортежи могут содержать несколько элементов, вы можете использовать кортежи для возврата нескольких значений из функции.

Необязательный

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

Представьте, что я создаю программное обеспечение, в котором ожидается имя пользователя: скорее всего, имя, фамилия и отчество. Хотя можно предположить, что у каждого человека должны быть имя и фамилия, не у всех есть отчество. middlename в данном случае — это переменная, которая может либо иметь значение, либо нет, лучше всего объявить такую ​​переменную как необязательную.

var firstName: String
var lastName: String
var middleName: String? // this is optional, it can be a String or nil

Вы устанавливаете необязательную переменную в состояние без значения, присваивая ей специальное значение nil:

var serverResponseCode: Int? = nil

Примечание: присвоение nil необязательному значению приведет к ошибке.

let pi3: Int
// pi3 = nil // Error: 'nil' cannot be assigned to type 'Int'

Некоторые выражения возвращают дополнительный тип, см. ниже:

let possibleNumber = "123"
let convertedNumber = Int(possibleNumber)

Предполагается, что convertedNumber имеет тип «Int?» или «необязательный Int». Почему? Это связано с тем, что преобразование может завершиться ошибкой, и в этом случае переменной присваивается нулевое значение.

var status = "M"
var statusCode = Int(status)
print(statusCode) // prints 'nil'

Это означает, что преобразование Int() может возвращать либо числовое целое значение, либо nil, что мы называем необязательным Int.

Это все, что мы можем осветить в базовом обзоре Swift. Предварительное знание любого языка программирования сделает это прогулкой по парку, и в то же время это достаточно просто, чтобы кто-то относительно новичок мог легко его подобрать.

Я также узнал о Принудительном развертывании, Необязательная привязка, Неявно развернутые необязательные параметры, Обработка ошибок, Утверждения и Предварительные условия. Но я решил не включать их, чтобы сделать этот обзор максимально простым. Мы обязательно коснемся каждой из этих тем позже.

Swift даже намного проще, чем Python. Что вы думаете?

Если это ваш первый язык, поделитесь со мной тем, что вы узнали, в разделе комментариев.

До следующего. Основные операторы в Swift. ✌️