Kotlin. Пользовательский ввод и вывод
Иногда хочется просто сесть вечером у окна и рассказать кому-то о своей жизни, планах и достижениях. Причем этот разговор должен быть душевным и весьма приятным, чтобы удовлетворить нашего внутреннего поэта. И Kotlin предоставляет нам эту возможность исповедаться, причём сделав это в формате диалога (а не только монолога, как в этой статье), предлагая нам удобный функционал.
Сегодня мы поговорим о важной теме: пользовательском вводе и выводе (как говорится: "Вошёл и вышел. Приключение на 20 минут").
Пользовательский вывод
В прошлых статьях мы неоднократно пользовались функцией println(), для того чтобы выводить некоторую информацию в консоль (Сидорович бы за это определенно бы взял плату). Теперь давайте познакомимся со способами вывода в консоль более детально:
Существуют две основные функции, позволяющие сделать это: print() и println()
"Да кто такой этот ваш объект?" - спросите вы. И будете абсолютно правы.
В качестве объекта может выступать любые типы данных: числа, строки, булевские переменные (да даже наши собственные объекты, о которых мы поговорим позже)
Единственное различие между print() и println() заключается в том, что последнее добавляет перевод на новую строку, что и демонстрирует следующий код. Никакой магии, только хардкод!
Результат в консоли:
Теперь, когда мы стали самыми настоящими писателями, способными переносить текст на новую строку, пора рассказать ещё о нескольких фишках.
Специальные символы
Представьте, что вы ленивый разработчик (я же обычно не представляю) и вам лень добавлять суффикс ln к слову print(). Как тогда можно вывести текст с новой строки в нашу консоль?
Для этого умные программисты (заметьте: неленивые) создали специальные символы, которые используются специально в таких экстремальных и адреналиновых ситуациях.
Например, мы можем использовать в нашей строке символ '\n', чтобы сделать перенос на новую строчку прямо в нашем текста.
Помимо символа '\n' существует ещё множество других специальных символов. Так, символ '\t' добавляет таб в ваш текст, добавляющий фиксированное значение пробелов:
А что делать, если мы захотим похвастаться своей цитатой перед нашим пользователем. Скорее всего, вы напишите так:
Все герои вымышлены, любые совпадения являются случайными
И непременно получите много мата от Kotlin'а, представленное в виде следующей ошибки:
Почему этот негодник (Kotlin) позволяет общаться с Вами в таком тоне?
А всё потому, что Котлин читает ваш код слева-направо, сверху-вниз, поэтому когда он видит первую двойную кавычку в Вашей цитате, он на полном серьёзе воспринимает еë как кавычку, закрывающую строку
И что теперь делать? Мы не можем отказаться от того, что мир не узнает нашей цитаты, только из-за синтаксиса какого-то Kotlin'а.
И опять специальные символы решают нашу проблему!
Добавив ' \" ', мы говорим Kotlin'у: "дружище, просто выведи эту кавычку в консоль, не воспринимая её всерьёз". Результат не заставит себя ждать (всерьёз подумываю уйти в маркетинг):
Теперь, когда уровень адреналина упал, и пульс стал намного меньше, пора поговорить более детально о выводе значений переменных в консоль.
Шаблоны строк
Помните, как в прошлой статье мы выводили значение переменной вместе с текстом с помощью знака "+":
На самом деле это кража. Кража вашего времени и усилий, необходимых на нажатие символ "+". Есть куда более лёгкий и приятный глазу способ вывода переменных вместе с текстом в консоль. Эту тяжкую работу на себя берут шаблоны строк!
Для того, чтобы вставить переменную прямиком в текст сообщения, достаточно всего лишь поставить знак доллара '$' в тексте и написать имя переменной:
Вот так легко и просто мы можем сэкономить тысячу усилий, которые понадобились на поставку '+' в наш код. Красота!
Пользовательский ввод
А теперь настало время добавить интерактива с пользователем в нашу консоль! Сейчас мы научимся запрашивать у пользователя вводить текст в консоль и работать с ним.
Представим, что мы хотим создать себе друга, с которым мы бы могли общаться через консоль. Нет, не беспокойтесь, выходить на улицу знакомиться мы не будем. Мы будем использовать функция readLine():
Этот результат можно будет сохранить в переменную, после чего в дальнейшем использовать в коде.
Давайте попросим пользователя представиться, введя его имя (как тебя зовут красавчик?)
Теперь выведем его имя в консоль (берём эти уроки в качестве пикапа):
Супер! Мы уже почти способны писать сверх-коды для гугла. Ну а что делать, если мы захотим ввести число? Ведь readLine() всегда возвращает тип String, а не Int...
На помощь придёт преобразование типов:
Хороший ребёнок говорит первое слово "П... Папа", лучший - "П... Преобразование типов"
Преобразование типов позволяет привести переменную одного типа в другой тип данных, чтобы в дальнейшем работать с ней как с необходимым типом.
Ну а теперь позволь поздравить тебя, подписчик, ведь ты только что создал программу, у которой хватило смелости познакомиться с тобой)
Так держать! 🔥
Что дальше?
В следующей статье мы с тобой изучим виды операций в Kotlin'е и научимся работать с нашими данными!
Дорогой читатель, я надеюсь моя статья оказалась полезной для тебя!
Ты всегда можешь следить за моим творчеством на этом канале.
Спасибо за проявленный интерес!