Пример программы на котлин

Содержание

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

Если вы не знаете, зачем нужен Kotlin и что на нём программируют, почитайте нашу статью про Kotlin. А если знаете — вот вам краткий справочник по основам языка.

В Kotlin будет много конструкций, похожих на Java. Это нормально, потому что Kotlin работает тоже поверх виртуальной машины JVM, как и Java.

Точка с запятой в Котлине не нужна.

Комментарии

Всё как обычно — есть однострочные и многострочные комментарии:

// Это однострочный комментарий
// Для каждой строки нужно добавлять его отдельно
/* А это — многострочный
его можно сделать любой длины,
если в начале и в конце поставить нужные символы */

Многие программисты ругают Kotlin за то, что ключевые слова для переменной и константы отличаются всего на одну букву:

Kotlin Android Studio / Урок #1 – Разработка Андроид программ на Котлин

val — объявляет константу

var — объявляет переменную

Из-за этого легко ошибиться и сделать константу вместо переменной и наоборот.

val a: Int = 1 // можно сразу указать тип константы val b = 1 // а можно не указывать, тогда тип назначится автоматически val c: Int // когда константа сразу не получает значение, нужно обязательно указать её тип c = 1 // этот тип будет использоваться при объявлении константы var x = 5 // здесь тип тоже назначается автоматически var y: Int // указываем вручную, что у нас переменная целочисленного типа

Ввод и вывод

Чтобы ввести что-то с клавиатуры, нам нужна переменная, где будет храниться результат ввода и команда readLine(). Эта команда ждёт, когда пользователь введёт любые данные и нажмёт Enter. После этого всё, что ввёл пользователь, отправляется в ту переменную.

Для вывода используются команды print() и println() — первая оставляет курсор на той же строке, а вторая после вывода переводит курсор на новую строку.

Чтобы вывести значение переменной в команде вывода, перед переменной ставят знак доллара:

var s // переменная, куда мы отправим результат ввода print(«Напишите что-нибудь: «) // выводим фразу и оставляем курсор на той же строке s = readLine() // читаем данные с клавиатуры println(«Вот что вы только что ввели: $s») // выводим нашу фразу и значение переменной

Присваивание и сравнение

Всё так же, как в Java, но без точек с запятой:

// это присваивание
x = 10
// а это — сравнение x и 10
// результат сравнения отправляется в переменную b
var bol: Boolean
b = (x == 10)

Условный оператор if

Работает как обычно: сначала проверяется условие, и если оно истинно — выполняется код, который идёт после условия. Если результат проверки ложный — выполняется код, написанный после else, или не выполняется ничего, если такого блока в условии нет. Условие пишется в скобках, фигурные скобки можно не писать, если нужно выполнить только одну команду.

Читайте также:
Код активации программы movavi video editor

Изучение Kotlin Android за 30 минут! Создание Андроид приложения с нуля


if (a > b) // проверяем условие s = a + 10 // одна команда, поэтому можно без фигурных скобок else < // если условие ложно, то делаем то, что написано в этом блоке s = a — 10 // раз больше одной команды, то ставим фигурные скобки b = b — 5 >

Оператор множественного выбора when

Аналог классического Case или Switch из других языков программирования. Команда смотрит на значение переменной, которое к ней поступило, и сравнивает это значение со своим списком вариантов. Если есть совпадение — выполняется нужная команда.

var answer = readline() // получаем ответ от пользователя when(answer) < // проверяем ответ по списку «Да» ->println(«Правильный ответ») «Нет» -> < println(«Неправильный ответ») count -= 1 >»Не знаю» -> count -= 2 else -> println(«Ответ не распознан, повторите снова») >

Циклы

Проще всего работать с циклом for: достаточно указать имя переменной цикла и диапазон, в котором она будет меняться:

При желании можно указать шаг цикла внутри диапазона (по умолчанию он равен единице):

for (i in 1..6 step 2) print(«$i «) // на экране появятся числа 1, 3 и 5
>

Циклы с предусловием и с постусловием выглядят и работают как в обычном Java:

sum = 1 do < // начало цикла sum = sum + (sum + 1) // тело цикла >while (sum < 1) // проверка условия // и то же самое с циклом while sum = 1 while (sum < 1) < // проверка условия sum = sum + (sum + 1) // тело цикла >

Функции

У функций в Kotlin полная свобода:

  • можно возвращать значение, а можно и не возвращать;
  • функции могут иметь свой тип, а могут и не иметь;
  • функции могут работать как переменные;
  • функции можно перегружать почти как операторы в C++.

А ещё в Kotlin, как и в Java, каждая программа состоит из функций и каждая команда должна быть внутри какой-то функции. Основная функция программы называется main.

Самое простое объявление и использование функций в Kotlin выглядит так:

fun printHello() < //объявляем новую функцию println(«Привет, это журнал Код!») // выводим приветствие >fun main() < // основная функция в каждой программе printHello() // Вызываем нашу новую функцию >

Классы

Классы в Котлине поддерживают полноценные конструкторы и инициализации, но для старта достаточно объявить имя класса и его содержимое:

class Client(val name: String, var bonus: Int, val sity: String) < //объявляем класс с тремя свойствами fun printBonus() < // добавляем функцию внутрь класса println(«У клиента $bonus бонусных баллов») >>

Объекты

Как и в большинстве ООП-языков, для создания нового объекта достаточно указать класс, от которого произойдёт объект. После этого с объектом можно работать по всем правилам объектно ориентированного программирования:

class Client(val name: String, var bonus: Int, val sity: String) < //объявляем класс с тремя свойствами fun printBonus() < // добавляем функцию внутрь класса println(«У клиента $bonus бонусных баллов») >> var ivanov = Client(«Сергей Иванов», 500, «Санкт-Петербург») // создаём новый объект с покупателем println(ivanov.name) // выводим его имя println(ivanov.sity) // и его город ivanov.bonus() // используем встроенную в класс функцию, чтобы узнать количество бонусных баллов
Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Источник: thecode.media

Уроки по Kotlin с нуля (бесплатный курс с тестами и практикой)

ievetrov – обучение Kotlin. Практические задания по Котлин и Android. Изучение основ программирования.

Это бесплатный курс по основам программирования на языке Котлин. Здесь вы найдете видео и текстовые версии уроков для изучения. Все видео вместе можно посмотреть на канале.

Обучение рассчитано на начинающих разработчиков, а также, если у вас совсем нет опыта в программировании и вы только знакомитесь с этой сферой. Чтобы в последствии стать профессиональным Kotlin-разработчиком или Android-разработчиком.

Читайте также:
Как найти программу шпион на телефоне Самсунг Андроид

Начните свой путь в мобильную разработку на языке программирования Kotlin!

Урок 0: Введение в Kotlin, установка среды разработки IntelliJ IDEA

Оглавление Настройка IntelliJ IDEA, установка JDK, первая программа Среда программирования Настройка IntelliJ IDEA. Понятия SDK и JDK Основы написания кода в Kotlin Методы и функции в Котлин Настройка IntelliJ IDEA, установка JDK, первая программа Среда программирования Для установки и настройки…

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

Оглавление Что такое переменные? Создание val и const val переменной Вывод значений переменных на экран. println() — метод вывода в консоль Создание var переменной Базовые типы данных в Котлин 1. Числовые 2. Вещественные типы (или типы с плавающей точкой) 3.…

Урок 2: Арифметические операции в языке Kotlin

Оглавление Создание файла в Котлин Инициализация числом и выражением Деление целых и дробных чисел Остаток от деления Как в Kotlin формируется конечный тип переменной Присваивание через +=, инкремент, декремент в Котлин Операторы сравнения Создание файла в Котлин Классические операции, такие…

Урок 3: Строки в Kotlin. Интерполяция. Конкатенация

Оглавление Конкатенация строк Строковые шаблоны (интерполяция строк) Многострочное интерполирование в Kotlin Конкатенация строк Обсудим возможности строк в Котлине. Представим, что мы программируем бота, который будет приветствовать новых пользователей по имени и сообщать какую-нибудь информацию. Для этого распечатаем такую строку. Задача…

Урок 4: Boolean – логический тип данных в Kotlin. Операторы сравнения

Эта информация призвана разложить по полочкам значения терминов, связанных с логическим типом данных. Конкретно рассмотрим: логические операторы, операторы сравнения и присваивания. Оглавление Все операторы сравнения языка Котлин Логические операторы в Kotlin Начнем с последнего. Раз и навсегда определим, что оператор…

Урок 5: if else when в Kotlin Операторы ветвления или условные операторы

Оглавление Оператор if else Оператор when в Котлин Оператор if else Напомню гипотетический сценарий программы: при определенном пороге возраста нужно показывать страницу со скрытым контентом. Это ничто иное как условие. Мы говорим — “Если возраст больше или равен 18, то…

Урок 6: Циклы в Kotlin. while, do-while

Оглавление Что такое циклы? Цикл while в Котлин Цикл do-while Что такое циклы? Циклы позволяют многократно исполнять один и тот же код при определенных условиях. Во-первых, мы избегаем дублирования кода, что в принципе считается хорошим тоном. Во-вторых, количество итераций может…

Урок 7: Цикл for в Kotlin, диапазоны (интервалы)

Оглавление Диапазоны (интервалы) Функция step в Kotlin Функция downTo Принадлежность к интервалу in, !in Цикл for Операторы break, continue, return в Котлин Экранирование символов Цикл for служит для перебора значений по каким-либо коллекциям, например, по спискам или по диапазонам чисел.…

Урок 8: Массивы в Kotlin. Функции для массивов

Оглавление Создание массивов разных типов Размер массива Функция indexOf() в Kotlin Создание массивов разных типов Мы уже виртуозно умеем управляться с базовыми типами, такими как Int, String и так далее. Обычно мы создаем ряд переменных и работаем с ними. Представим,…

Урок 9: Списки в Kotlin, функции для работы с коллекциями

Оглавление Коллекции Создание списков в Котлин Изменяемые списки в Kotlin Функции для работы со списками Функция sort Функция filter() Функция map() Коллекции По определению коллекции – это группы с переменным количеством элементов (или нулем элементов). Объекты внутри как правило имеют…

Урок 10: Функции в Kotlin. Как создать, получить и вернуть параметры

Оглавление Создание функции без параметров Создание функции с возвращаемым параметром Создание функции с принимающими параметрами Давайте поговорим о функциях в Kotlin. Что такое, как создавать, куда они возвращают результат и так далее. Перед нами пустой документ, который, как уже известно…

Урок 11: ООП. Классы и объекты в Kotlin. Сущности и объекты

Оглавление Пакеты Тестирование методов в рабочем файле Начинаем разговор про классы и объекты в языке программирования Kotlin. Давайте попробую объяснить сначала с точки зрения прикладного использования. Начнем с понятия классы. На протяжении всего обучения до этого момента мы оперировали переменными…

Урок 12: Конструкторы в Kotlin (primary, secondary). Блоки инициализации init

Оглавление Что такое конструктор в Kotlin Блок 1: пустой конструктор Блок 2: основной конструктор (primary constructor) Блок 3: упрощенная форма основного конструктора Блок 4: вторичный конструктор (secondary constructor) Инициализатор Что такое конструктор в Kotlin Помните, как мы создавали экземпляр класса…

Читайте также:
В 1с выдает не обнаружен ключ защиты программы

Урок 13: Null Safety в Kotlin – операторы ?. . NullPointerException (NPE)

Оглавление Что такое NPE Что такое null Оператор безопасного вызова – ?. Оператор “элвис” – ?: Оператор утверждения “это не null” – !! Что такое NPE Exceptions (или исключения) в программировании позволяют описать проблему, если в программе что-то пошло не так. Как…

Урок 14: ООП. Наследование в Kotlin. open/super class, override

Оглавление Суперкласс Классы наследники Абстрактный класс Переопределение методов Обращение к методам класса — родителя Суперкласс Наследование считается одним из принципов ООП. Суть заключается в том, что можно создать один основной класс с базовыми свойствами и методами и отнаследовать от него…

Урок 15: Абстрактные классы и интерфейсы в Kotlin. Имплементация

Оглавление Абстрактные классы В каких случаях используют интерфейсы Функционал интерфейсов Реализация абстрактных методов в интерфейсах Абстрактные классы На прошлом уроке я вскользь упомянул ключевое слово abstract, с помощью которого мы запретили на время создавать экземпляры базового класса. То есть абстрактный…

Урок 16: Модификаторы доступа (видимости) в Kotlin. public, private, protected, internal

Оглавление Основные модификаторы доступа Применение Область видимости Инкапсуляция Основные модификаторы доступа Модификаторы доступа это определенные ключевые слова в языке, с помощью которых можно устанавливать уровень видимости для класса, переменной или метода. Под уровнем видимости я имею в виду буквально будет…

Урок 17: Сеттеры и геттеры в Kotlin (setter, getter)

Оглавление Общие понятия Геттер Сеттер Общие понятия Из прошлого урока про модификаторы доступа плавно переходим к пониманию сеттеров и геттеров. Когда мы обращаемся к свойству какого-то класса, можно подумать, что мы делаем это напрямую. Однако, это не так. Kotlin под…

Урок 18: ООП. Полиморфизм в Kotlin, 3 типа (Ad hoc, Subtyping, Parametric)

Оглавление Суть полиморфизма 3 типа полиморфизма в Kotlin Полиморфизм по случаю Полиморфизм включения Суть полиморфизма Тема полиморфизма может казаться слегка запутанной. А еще это не редкий вопрос на собеседованиях. Поэтому добавлю немного структурности, чтобы все стало разложено по полкам. Сначала…

Урок 19: ENUM в Kotlin (классы перечислений), TODO() и тип Nothing

Оглавление Что такое enum? Понятие — статус Реализация Функция TODO() Что такое enum? Разбираем классы перечислений enum и выясняем чем они полезнее обычных строковых констант. Также затронем функцию TODO(), которая возвращает тип “ничего”. enum – это сокращение от enumeration. Перечисления с…

Источник: ievetrov.ru

Хорошие и плохие приемы программирования на Kotlin

kotlin

Good And Bad Practices Of Coding In Kotlin — статья о практиках программирования на Kotlin, хороших и плохих. В статье рассмотрены хорошие и плохие приемы программирования на Kotlin.

Первый пример программирования на Kotlin

val file = File ( «/my_file» )
val writer = file . printWriter ( )
writer . println ( «Hello World» )
> catch ( __ : Exception ) <
// Обработка исключения
writer . close ( )

Это стандартный способ записи строки в файл: открываем файл и с помощью PrintWriter записываем строку. В завершение закрываем PrintWriter даже в том случае, если будет выброшено исключение.

Этот код можно переписать так:

val file = File ( «/my_file» )
file . printWriter ( ) . use <
it . println ( «Hello World» )

В случае с объектами, реализующими интерфейс Closeable (здесь PrintWriter ), функция-расширение use автоматически вызывает метод close после выполнения кода лямбды.

Второй пример программирования на Kotlin

val list = listOf ( «Ahsen» , «Bob» , «Alex» , «Jasmine» )
val anotherList = listOf ( 1 , 2 , 3 , 4 )
val size = list . size
for ( i in 0..size )
println ( «Name -> $ and number -> $» )

Этот код проходит в цикле сразу по двум спискам. Но в нем есть одна проблема: если второй список будет длиннее первого, приложение упадет с исключением ArrayIndexOutOfBoundsException.

Kotlin позволяет решить эту проблему и заодно сделать код гораздо более элегантным:

val list = listOf ( «Ahsen» , «Bob» , «Alex» , «Jasmine» )
val anotherList = listOf ( 1 , 2 , 3 , 4 , 5 , 6 , 7 )
for ( ( name , number ) in list . zip ( anotherList ) )
println ( «Name -> $name and number -> $number» )

Метод zip создает набор пар (pair), где первый элемент пары — значение из первого списка, второй элемент — значение из второго с тем же индексом. В этом примере пара автоматически раскладывается на переменные name и number с помощью деструктивного оператора.

Источник: tech-geek.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru