Kotlin. Переменные и типы данных
Не волнуйтесь, если что-то не работает. Если бы всё работало, вас бы уволили.
Сегодня настало время поговорить о по-настоящему интересных вещах. И нет, речь сейчас не пойдет о том, как нейросети генерируют посты в пабликах и каналах (хотя кто знает: возможно эта статья - тоже результат шайтан-машины). Сегодня мы поговорим с Вами о Возможностях управления... управления оперативной памятью Вашего компьютера (ну а о других возможностях Вам расскажет нейросеть)!
Переменные
Закройте глаза и на секунду представьте: Вы являетесь разработчиком супер-большого консольного-приложения для своего идеального стартапа. И в один прекрасный день Вы всё-таки понимаете, что программа не может вечно работать на одних командах println() - ей нужно больше функционала, а самое главное - ей нужно где-то хранить информацию (ведь информация сегодня - самый ценный ресурс, которым мы можем обладать).
Поэтому возникает вполне очевидный вопрос: "а где мы можем хранить эту информацию в компьютере?".
Ответом на этот вопрос и является тема текущей статьи: мы можем временно сохранять любой вид информации внутри оперативной памяти компьютера с помощью переменных.
Для того чтобы создать переменную в нашем коде, достаточно написать слово var и указать имя переменной, после чего мы можем смело ставить знак "=" и присвоить ей любое значение! Звучит не сложно, правда?
Теперь давайте разберемся по порядку:
Когда мы с Вами пишем слово var, Kotlin фактически говорит: "Друг, мне нужно немного оперативной памяти, чтобы сохранить в переменную какое-то значение". Это ключевое слово позволяет создать в первый раз переменную и в дальнейшем на протяжении всей программы работать с ней: брать из неё значение, изменять его и преобразовывать.
Далее мы с Вами указали имя переменной. Имя переменной может быть любым, но главное чтобы оно соответствовало несколько простым правилам:
- Может содержать латинские буквы, цифры и нижнее подчеркивание
- Должно начинаться с латинской буквы или нижнего подчеркивания
- Не должно быть зарезервированным словом (например, var или fun)
Далее мы поставили знак "=", чтобы присвоить значение переменной (например, строку "Петька" или число 18).
Таким образом,
Переменная - это определенный участок памяти, который хранит некоторое значение
Всё просто? Тогда движемся дальше!
Как использовать переменные?
Окей, мы создали три переменные для героя нашей статьи Петьки (нужно непременно предложить ему платные услуги по пиару). Но как работать теперь с этими переменными, и что нам это даёт?
Использовать переменные очень просто: мы можем в любой момент времени в любом месте программы мы можем получить и изменить их значения!
Например:
Несколько строк кода - и у Петьки уже шестизначные суммы на счету!
Этот код выдаст следующий результат в консоли:
Наверняка Вы уже успели испугаться русским буквам в консоли, идущим после двух слэшов "//". Такие записи называются комментариями и они нужны для увеличения читаемости кода. Когда код программы станет слишком большим, комментарии помогут Вам в нём ориентироваться. К тому же, вернувшись к проекту через долгое время, Вы наверняка забудете, как работает Ваш код ("ЧЕ У ВАС ЗДЕСЬ ПРОИСХОДИТ?!"), но комментарии помогут избавиться от этой легкой амнезии :)
Комментарии - текст, поясняющий ваш код. Для создания комментария можно использовать два слэша: "//комментарий" или "/*Многострочный комментарий*/"
Теперь проанализируем сам код:
Так, в этой строчке кода мы выводим значение переменной с именем в консоль с помощью команды println(), доставая значение "Петька" из оперативной памяти, на ячейки который ссылается наша переменная name.
Далее мы выводим баланс пользователя вместе с другим текстом, заключенным в двойные кавычки. Обратите внимание, как мы соединяем значение переменной money с текстом при помощи знака "+". Это один из возможных способов вставки значения переменной внутрь текста. В следующих статьях мы рассмотрим и другие способы.
И, наконец, мы изменяем значение переменной money, присваивая ей значение 100500,00, после чего смело выводим новое значение в консоль (easy money!).
И кстати, не обязательно присваивать конкретное значение нашим переменным. Мы можем присваивать им значение и из других переменных:
На этом небольшом примере мы с Вами научились использовать и изменять значение переменных.
Ключевое слово val
Создавать переменные можно не только при помощи ключевого слово var. Переменные можно объявлять также при помощи val: единственное отличие такого способа заключается в том, что
Переменные, созданные при помощи val, нельзя изменять в дальнейшем в коде
То есть если мы создадим переменную при помощи ключевого слова val, мы сможем брать значение из этой переменной на протяжении всей программы, но не сможем его изменять:
На этот раз банковская ошибка не в пользу Пети.
Типы данных
Плохая примета у девушки спрашивать её возраст, а у переменной - её тип данных. Спросите: "Почему?". А всё потому что
Тип данных определяет, сколько байт памяти будет занимать переменная и какие операции над ней можно совершать в зависимости от того вида информации (данных), который она в себе несет.
В Kotlin'е существует множество типов данных и сейчас мы рассмотрим их подробнее
Целочисленный тип данных
Целочисленный тип данных - это все целые числа (например: 1, 7, 123, 0, -14 и т.д.)
Существует несколько типов данных, относящихся к целочисленным (каждый из них имеет свой минимальный/максимальный диапазон и размер необходимой памяти):
- Byte - 1 байт; диапазон [-128; 127]
- Short - 2 байта; диапазон [-32768; 32767]
- Int - 4 байта; диапазон [-2 147 483 648 (-2^31); 2 147 483 647 (2^31 - 1)]
- Long - 8 байт; диапазон [-2^63; 2^63 - 1]
Также, если Вы уверены, что значение в Вашей переменной будет только положительное (негативных не будет), вы можете использовать беззнаковые целочисленные типы данных:
- UByte - 1 байт; диапазон [0; 255]
- UShort - 2 байта; диапазон [0; 65 535]
- UInt - 4 байта; диапазон [0; 2^32 - 1]
- ULong - 8 байт; диапазон [0; 2^64 - 1]
При этом, мы можем самостоятельно указывать тип переменной во время её объявления. Для этого достаточно добавить двоеточие после имени переменной и указать необходимый тип данных:
Посмотрите внимательнее на 4 строчку кода. Самые внимательные из Вас наверняка заметили, что для беззнаковых типов данных нужно добавлять суффикс U на конец, чтобы Kotlin смог идентифицировать гендер переменной c как беззнаковый.
Числа с плавающей точкой
На самом деле, плавать они не умеют. Но зато они умеют сохранять дробную часть внутри себя. Поэтому данному типу данных можно дать следующее определение:
Числа с плавающей точкой - это все дробные числа (например: 23.7, -1.5, 0.0)
Существует всего 2 типа данных для чисел с плавающей точкой:
- Float - 4 байта; диапазон [-3.4*10^38; 3.4*10^38]
- Double - 8 байт; диапазон [±5.0*10^-324; ±1.7*10^308]
Кроме того, такие числа можно записывать и в виде экспоненциальной записи (да-да, та самая непонятная запись числа, знакомая нам из курса физики):
Обратите внимание, что для типа Float мы обязаны дополнительно указывать букву F в конце числа, чтобы Kotlin мог правильно распознать этот тип данных (этого пловца).
Логический тип данных
У всякого безумия есть своя логика. Вот и у Kotlin'а есть свой особый тип данных, называемый логическим.
Логический (булевский) тип данных - тип данных, который может принимать только 2 значения: true (истина, правда, корректно) и false (ложь, неправда, некорректно)
Логический тип данных обычно используется в условных операторах, о которых мы поговорим чуть позже. Старше ли пользователь 18 лет, любит ли он капибар, изучает ли он Kotlin и Java одновременно - ответы на все эти вопросы может дать логический тип данных.
Символьный тип данных
Символьный тип данных - это один отдельный символ, заключенный в одинарные кавычки
Строки
С этим типом данных мы уже частично работали. Настало время познакомиться с этими красотками поближе! Итак,
Строка - это любая последовательность символов, заключенная либо в двойные кавычки, либо в тройные двойные кавычки
Да, помимо двойных кавычек, мы можем заключать в тройные двойные кавычки (глаза боятся, а руки делают). Преимущество второго способа заключается в том, что он предоставляет удобную возможность для вывода многострочного текста. Давайте посмотрим, как это можно сделать:
В консоли увидим следующий вывод:
Со строками мы будем работать часто, поэтому к ним мы еще обязательно вернемся ("Хатико. Начало").
Тип Any
Для того, чтобы присвоить переменной любое значение, используется тип Any
Тип Any позволяет указать любой тип данной для переменной
Теперь, когда у Вас сложилось понимание о переменных и типах данных мы можем двинуться дальше - в светлое ИТ будущее! Вместе. Вместе с E-code.
Что дальше?
В следующей статье мы с Вами подробнее рассмотрим работу с пользовательским выводом (да-да, той самой командой println()), разберем, как можно преобразовывать типы из одного в другой, а также научимся вводить информацию в консоль ИЗВНЕ нашего кода!
Дорогой читатель, я надеюсь моя статья оказалась полезной для тебя!
Ты всегда можешь следить за моим творчеством на этом канале.
Спасибо за проявленный интерес!