Видео версия урока:
https://youtu.be/QKH13qZVKO8
Что такое переменные?
Если подойти к пониманию переменных абстрактно, можно сказать так, что то, что мы видим на экране компьютеров и смартфонов – в основном это данные в виде чисел и текста. То есть эта информация имеет числовой, строковый и другие типы данных. Они не появляются из ниоткуда, а передаются для отображения на экране в специальных контейнерах – переменных. Это значит, что в программе мы постоянно будем работать с данными, используя такие контейнеры.
Создание val и const val переменной
Для работы с переменной сначала ее необходимо создать и присвоить ей значение. Под капотом при создании переменной выделяется ячейка в памяти компьютера, у которой есть свой специальный тип и адрес. Давайте создадим переменную и поместим в нее какое-нибудь число. Представим, что она хранит в себе количество заказов вымышленного магазина.
Для объявления переменной в котлине используется ключевое слово val. Далее пишется произвольное название переменной, рекомендуется, чтобы оно было осмысленным, чтобы было понятно, что она хранит в себе или для чего она используется. Обратите внимание на способ написания имени – с маленькой буквы и каждое следующее слово с большой буквы. Этот способ называется camel case и его принято использовать при именовании простых переменных и методов.
Знак Равно (“=”) – это оператор присваивания. В коде всегда данные справа от Равно присваиваются данным слева от Равно. Итак, мы объявили переменную numberOfOrders и присвоили ей значение – 42 (также можно сказать создали или задекларировали переменную и инициализировали ее).
Давайте объявим еще одну переменную и присвоим ей не число, а строку. Пусть переменная хранит в себе какое-нибудь уведомление для пользователя.
Обратите внимание, вносимый в переменную текст заключен в двойные кавычки. Теперь с этими переменными мы можем работать.
Вывод значений переменных на экран. println() - метод вывода в консоль
Итак, теперь распечатаем значение переменных в консоли. Для этого воспользуемся фукнцией println в которую отправим наши переменные в качестве параметров и запустим программу
При этом вывод в консоль будет такой:
Хорошо. Теперь представим, что количество заказов изменилось и теперь нам надо отображать новые данные. Для этого присвоим нашей числовой переменной новое значение.
Запустим программу и увидим, что распечаталось новое значение. Теперь представим, что бизнес требует изменить приветственное сообщение. Давайте заменим его в нашей текстовой переменной на новое.
Обратите внимание, мы не меняем проинициализированное значение. Мы переписываем данные переменной новой информацией, заменяем все в ней имеющееся новым текстом. И вызываем println для вывода в консоли текста этой переменной.
Программа при выполнении двигается сверху вниз построчно и можно проследить ее действия. Объявили текстовую переменную и присвоили значение, распечатали ее, присвоили ей новое значение, снова распечатали уже новый текст. Выводить в консоль два разных значения нам не нужно, поэтому закомментируем старый вызов функции. Для быстрого комментария есть сочетание клавиш - Ctrl + /
Запускаем. И обнаружим ошибку:
Во-первых, при попытке запустить проект в консоли мы видим текст ошибки – “переменная val не может быть переназначена”, во-вторых среда разработки уже ее подсвечивает и предлагает варианты исправления val на изменяемую переменную var. Что мы и сделаем. Запускаем и программа отрабатывает корректно. Почему это произошло?
Переменная, объявленная с помощью ключевого слова val является неизменяемой, константа своего рода. Это значит, что если мы объявили переменную и проинициализировали ее каким-либо значением и после этого попытаемся перезаписать данные в ней (поместить новую информацию), как в данном случае, возникнет ошибка компиляции и программа не запустится. Рекомендуется всегда использовать val переменные, если это позволяет программа.
Создание var переменной
Если же нам нужна переменная, которую можно изменять и перезаписывать, используем ключевое слово – var. В реальной жизни это можно рассматривать как “защита от дурака”, чтобы отличать переменные, которые собирались модифицировать от тех, которые не собирались, когда их настолько много, что в их назначении можно запутаться.
Поговорим о типах переменных. Когда мы объявляли наши переменные и присваивали им значения, тип автоматически определялся и присваивался переменной согласно передаваемым данным. Но в котлине можно явно указать тип переменной через двоеточие при ее объявлении или вызвав контекстное меню. Явное указание типов бывает особенно полезным, когда нужно разобраться в чужом коде или не запутаться в своем. Явно объявив переменную одного типа, нельзя потом положить в нее данные другого.
Базовые типы данных в Котлин.
Существует 4 группы типа данных: числовые, вещественные, строковые и логические. Давайте по порядку. В коде выше мы использовали самый распространенный целочисленный тип данных Int. В группе целочисленных типов есть еще несколько типов, которые различаются только максимально возможным количеством хранимой информации, другими словами тип определяет какое максимальное число может хранить переменная.
1. Числовые
- Int (сокращенное от Integer - целое число) может хранить в себе 32 bit информации. Это числа от -2 147 483 648 до 2 147 483 647 (2 147 483 647 потому что в положительный диапазон входит 0).
Подробно все числовые типы расписывать не буду, моя задача передать принцип. Тезисно пройдемся по остальным. Названия говорят сами за себя.
- Long - может хранить до 64 бит информации
- Short - может хранить до 16 bit информации
- Byte - создаст самую маленькую числовую ячейку в памяти размером 8 бит (или 1 байт)
В идеальном мире каждый тип применяется под заранее известный диапазон рабочих чисел, чтобы не выделять лишнюю неиспользуемую память.
И еще стоит добавить, что можно объявить тип для только для положительных чисел. Он называется Unsigned. Для его объявления добавляется U к типу и к значению в конце.
2. Вещественные типы (или типы с плавающей точкой)
Их два. Double - вмещает 64 bit и Float - вмещает 32 bit информации. Отличаются только вмещаемым размером, но еще важно учитыват один нюанс. По умолчанию если вы присвоите число с плавающей точкой без явного указания типа, оно будет Double. Чтобы явно указать тип Float, следует добавить f к значению.
3. Строковые типы
String - строка. С ней мы уже работали. Это любой набор символов, заключенных в двойных кавычках.
Char - это тип, для хранения только одного текстового символа. Задается в одинарных кавычках.
4. Логические типы
Обозначается как Boolean и может хранить в себе только значения true или false (истина или ложь).
Дополнительные материалы
🔹 Тесты и практика по этому уроку: https://t.me/KotlinBasicsBot
🔹 Код из всех уроков в личном канале: https://t.me/ievetrov_dev
🔹 Бесплатный курс по Android: https://clck.ru/376Zab
🔹 Вопросы к собеседованию Android: https://t.me/AndroidSprint_Interview
🔹 VK: https://vk.com/ievetrov.development