🍎 Swift

Swift में वेरिएबल्स और डेटा टाइप्स

Что это и зачем?

Представь, что ты играешь в компьютерную игру. У тебя есть инвентарь, куда можно складывать разные предметы: меч, зелье, золотые монеты. В программировании то же самое — нам нужно где-то хранить информацию, чтобы потом её использовать. Переменные — это такие "ячейки памяти" с именем, куда можно положить данные. А типы данных — это как ярлычки на этих ячейках: "здесь только числа", "здесь только текст", "здесь только правда или ложь".

Зачем это нужно? Представь, что ты пишешь программу-калькулятор. Тебе нужно запомнить число, которое ввёл пользователь, потом второе число, а потом результат сложения. Без переменных тебе пришлось бы каждый раз заново спрашивать числа — это неудобно. Переменные позволяют сохранить данные и работать с ними.

В Swift (язык программирования для приложений на iPhone и iPad) переменные объявляются очень строго. Это как в армии: у каждой вещи своё место и свой тип. Если ты скажешь "это строка", то потом не сможешь положить туда число — компилятор (программа, которая проверяет твой код) выдаст ошибку. Это хорошо: ты сразу узнаешь о проблеме, а не когда программа уже работает.

Синтаксис и примеры кода

Давай посмотрим, как объявлять переменные в Swift. Есть два ключевых слова: var (от слова "variable" — переменная) и let (от "let" — пусть, константа). var можно менять, let — нет. Тип данных можно указать явно (через двоеточие) или не указывать — Swift сам догадается.

Пример 1: Числа (Int и Double)

// Целое число (Int) — без дробной части
var age: Int = 14  // возраст — целое число
// age = 14.5 — так нельзя, будет ошибка!

// Дробное число (Double) — с точкой
var price: Double = 99.99  // цена в магазине
// price = 100 — так можно, Swift сам превратит 100 в 100.0

// Swift может сам догадаться до типа:
var score = 1000  // это Int, потому что нет точки
var temperature = 36.6  // это Double, потому что есть точка

print("Возраст: \(age), цена: \(price), счёт: \(score), температура: \(temperature)")

Здесь мы создали четыре переменные. Первые две — с явным указанием типа (после двоеточия), вторые две — без. Swift сам понял, что score — целое число, а temperature — дробное. Обрати внимание: в дробных числах используется точка, а не запятая!

Пример 2: Текст (String)

// Строка — это текст в кавычках
var name: String = "Анна"  // имя пользователя
let greeting = "Привет, "  // константа — не будем менять

// Можно соединять строки:
var fullGreeting = greeting + name  // получится "Привет, Анна"
// Или вставлять переменные в строку через \( ):
var message = "\(greeting)\(name)! Добро пожаловать!"
print(message)  // выведет: Привет, Анна! Добро пожаловать!

// Строки можно менять:
name = "Иван"  // теперь name — "Иван"
// greeting = "Пока, " — так нельзя! greeting — константа (let)

Строки — это текст. Они всегда в двойных кавычках. Если нужно вставить переменную внутрь строки, используй \(имя_переменной). Это очень удобно — не нужно разрывать строку и склеивать куски.

Пример 3: Правда или ложь (Bool)

// Bool — только true (истина) или false (ложь)
var isLoggedIn: Bool = false  // пользователь не вошёл в систему
let isAdult = age >= 18  // true, если age >= 18, иначе false

// Используем в условии:
if isAdult {
    print("Можно смотреть фильм для взрослых")
} else {
    print("Тебе ещё рано")
}

// Меняем значение:
isLoggedIn = true  // теперь пользователь вошёл
print("Статус входа: \(isLoggedIn)")

Bool — это переключатель: либо да, либо нет. Очень полезно для проверок: "вошёл ли пользователь?", "есть ли деньги на счету?", "правильный ли пароль?".

Пример 4: Несколько переменных в одной строке

// Можно объявить несколько переменных сразу:
var x = 0, y = 0, z = 0  // три целых числа
var a: Double, b: Double, c: Double  // три дробных числа (пока без значений)

// Но лучше так не делать для новичков — легко запутаться.
// Лучше каждую переменную на отдельной строке:
var playerName = "Герой"
var playerHealth = 100
var playerScore = 0

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

Пример 5: Изменение переменной

var coins = 50  // у игрока 50 монет
print("У тебя \(coins) монет")

// Игрок нашёл 30 монет:
coins = coins + 30  // теперь 80
// Или короткая запись:
coins += 30  // то же самое, что coins = coins + 30

// Игрок потратил 20 монет:
coins -= 20  // теперь 60

// Можно умножать и делить:
var level = 5
level *= 2  // level = level * 2 = 10
level /= 2  // level = level / 2 = 5

print("Итоговое количество монет: \(coins), уровень: \(level)")

Переменные можно менять сколько угодно раз. Операторы +=, -=, *=, /= — это сокращённая запись. Они делают то же самое, но короче.

Сравнение с Python

Python — другой популярный язык, его часто учат в школах. Давай сравним, как те же идеи выглядят в Python.

Действие Swift Python
Объявить переменную var name = "Анна" name = "Анна"
Константа let pi = 3.14 Нет констант (по соглашению PI = 3.14)
Указать тип var age: Int = 14 Нельзя указать тип (динамическая типизация)
Строка с переменной "Привет, \(name)!" f"Привет, {name}!"
Смена типа Нельзя: var x = 5; x = "текст" — ошибка Можно: x = 5; x = "текст" — работает

Главное отличие: Swift — строго типизированный язык. Это значит, что если переменная создана как число, ты не сможешь потом записать в неё текст. Python — динамически типизированный: тип переменной может меняться. Для новичка строгая типизация Swift — это плюс: ты сразу видишь ошибки, а не ловишь их во время работы программы.

Ещё отличие: в Swift нужно писать var или let перед именем переменной. В Python — просто имя. Python короче, но Swift надёжнее.

Типичные ошибки новичков

  1. Забыть var или let
    name = "Анна"  // Ошибка! Нужно var name или let name

    В Swift нельзя просто так взять и присвоить значение переменной, если её не объявили. Сначала нужно сказать "я создаю переменную" с помощью var или let.

  2. Попытка изменить константу (let)
    let pi = 3.14
    pi = 3.1415  // Ошибка! pi — константа, её нельзя менять

    Если ты используешь let, значит, значение никогда не изменится. Компилятор не даст его поменять.

  3. Смешивание типов
    var number = 10
    number = "десять"  // Ошибка! number — Int, а ты пытаешься записать String

    Swift не позволит положить текст в числовую переменную. Если нужно хранить и то, и другое, используй String или создай новую переменную.

  4. Забыть кавычки для строк
    var name = Анна  // Ошибка! Swift думает, что Анна — это имя другой переменной
    var name = "Анна"  // Правильно

    Текст всегда в двойных кавычках. Без кавычек Swift ищет переменную с таким именем.

  5. Использовать запятую вместо точки в дробях
    var price = 99,99  // Ошибка! Запятая — это разделитель переменных
    var price = 99.99  // Правильно

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

  6. Не использовать интерполяцию строк
    var name = "Анна"
    print("Привет, " + name + "!")  // Работает, но некрасиво
    print("Привет, \(name)!")       // Красиво и правильно

    Склеивание строк