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 надёжнее.
Типичные ошибки новичков
-
Забыть var или let
name = "Анна" // Ошибка! Нужно var name или let nameВ Swift нельзя просто так взять и присвоить значение переменной, если её не объявили. Сначала нужно сказать "я создаю переменную" с помощью
varилиlet. -
Попытка изменить константу (let)
let pi = 3.14 pi = 3.1415 // Ошибка! pi — константа, её нельзя менятьЕсли ты используешь
let, значит, значение никогда не изменится. Компилятор не даст его поменять. -
Смешивание типов
var number = 10 number = "десять" // Ошибка! number — Int, а ты пытаешься записать StringSwift не позволит положить текст в числовую переменную. Если нужно хранить и то, и другое, используй
Stringили создай новую переменную. -
Забыть кавычки для строк
var name = Анна // Ошибка! Swift думает, что Анна — это имя другой переменной var name = "Анна" // ПравильноТекст всегда в двойных кавычках. Без кавычек Swift ищет переменную с таким именем.
-
Использовать запятую вместо точки в дробях
var price = 99,99 // Ошибка! Запятая — это разделитель переменных var price = 99.99 // ПравильноВ программировании (и в английском языке) дробная часть отделяется точкой. Запятая используется для других целей.
-
Не использовать интерполяцию строк
var name = "Анна" print("Привет, " + name + "!") // Работает, но некрасиво print("Привет, \(name)!") // Красиво и правильноСклеивание строк