Найти тему

Урок 1: Переменные. Базовые типы данных. var, val и const val в Kotlin

Видео версия урока:
https://youtu.be/QKH13qZVKO8

Что такое переменные?

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

-2

Создание val и const val переменной

Для работы с переменной сначала ее необходимо создать и присвоить ей значение. Под капотом при создании переменной выделяется ячейка в памяти компьютера, у которой есть свой специальный тип и адрес. Давайте создадим переменную и поместим в нее какое-нибудь число. Представим, что она хранит в себе количество заказов вымышленного магазина.

-3

Для объявления переменной в котлине используется ключевое слово val. Далее пишется произвольное название переменной, рекомендуется, чтобы оно было осмысленным, чтобы было понятно, что она хранит в себе или для чего она используется. Обратите внимание на способ написания имени – с маленькой буквы и каждое следующее слово с большой буквы. Этот способ называется camel case и его принято использовать при именовании простых переменных и методов.

Знак Равно (“=”) – это оператор присваивания. В коде всегда данные справа от Равно присваиваются данным слева от Равно. Итак, мы объявили переменную numberOfOrders и присвоили ей значение – 42 (также можно сказать создали или задекларировали переменную и инициализировали ее).

Давайте объявим еще одну переменную и присвоим ей не число, а строку. Пусть переменная хранит в себе какое-нибудь уведомление для пользователя.

-4

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

Вывод значений переменных на экран. println() - метод вывода в консоль

Итак, теперь распечатаем значение переменных в консоли. Для этого воспользуемся фукнцией println в которую отправим наши переменные в качестве параметров и запустим программу

-5

При этом вывод в консоль будет такой:

-6

Хорошо. Теперь представим, что количество заказов изменилось и теперь нам надо отображать новые данные. Для этого присвоим нашей числовой переменной новое значение.

-7

Запустим программу и увидим, что распечаталось новое значение. Теперь представим, что бизнес требует изменить приветственное сообщение. Давайте заменим его в нашей текстовой переменной на новое.

Обратите внимание, мы не меняем проинициализированное значение. Мы переписываем данные переменной новой информацией, заменяем все в ней имеющееся новым текстом. И вызываем println для вывода в консоли текста этой переменной.

Программа при выполнении двигается сверху вниз построчно и можно проследить ее действия. Объявили текстовую переменную и присвоили значение, распечатали ее, присвоили ей новое значение, снова распечатали уже новый текст. Выводить в консоль два разных значения нам не нужно, поэтому закомментируем старый вызов функции. Для быстрого комментария есть сочетание клавиш - Ctrl + /

-8

Запускаем. И обнаружим ошибку:

-9

Во-первых, при попытке запустить проект в консоли мы видим текст ошибки – “переменная val не может быть переназначена”, во-вторых среда разработки уже ее подсвечивает и предлагает варианты исправления val на изменяемую переменную var. Что мы и сделаем. Запускаем и программа отрабатывает корректно. Почему это произошло?

Переменная, объявленная с помощью ключевого слова val является неизменяемой, константа своего рода. Это значит, что если мы объявили переменную и проинициализировали ее каким-либо значением и после этого попытаемся перезаписать данные в ней (поместить новую информацию), как в данном случае, возникнет ошибка компиляции и программа не запустится. Рекомендуется всегда использовать val переменные, если это позволяет программа.

Создание var переменной

Если же нам нужна переменная, которую можно изменять и перезаписывать, используем ключевое слово – var. В реальной жизни это можно рассматривать как “защита от дурака”, чтобы отличать переменные, которые собирались модифицировать от тех, которые не собирались, когда их настолько много, что в их назначении можно запутаться.

-10

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

Базовые типы данных в Котлин.

Существует 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 (истина или ложь).

-11

Дополнительные материалы

🔹 Тесты и практика по этому уроку: 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