Kotlin — статически типизированный, объектно-ориентированный язык программирования, работающий поверх Java Virtual Machine и разрабатываемый компанией JetBrains. Язык назван в честь российского острова Котлин в Финском заливе, на котором расположен город Кронштадт.
Маскот котлина Коди.
Что имеем: +Современный синтаксис (реально удобный). +Совместимость со всей jvm инфраструктурой. +Возможность писать статический DSL прямо на самом языке. +Дополнительные возможности котлина. (делегаты, функции, расширения класса, вариативность и т.д) +Возможность нативной сборки, сборки в js, андроид и ios. +Корутины
Для тех, кто переходит из процедурных языков программирования, объектно-ориентированный подход (ООП) может показаться полной ерундой.
В интернете часто приводят какие-то высосанные из пальца примеры с кошками, собаками и всякой абстракщиной. Но в реальной жизни все не так просто, и эти детсадовские примеры ни о чем не говорят. Когда ты только начинаешь изучать ООП, то сложно понять, зачем вообще городить эту огромную телегу с классами, наследованием, инкапсуляцией и прочими заморочками.
Поэтому лучший способ въехать в ООП - это сразу погрузиться в изучение какого-нибудь фреймворка. Когда ты видишь, как все это применяется на практике, то сразу начинаешь понимать суть.
Почему следует изучить java перед котлин, а не сразу изучать котлин: 1.Java основа: Без знания java ты не будешь понимать, что происходит под капотом kotlin. Синтаксический сахар kotlin скрывает сложные операции, и ты можешь понять конечный результат, но не механизм его достижения. Это как нажимать кнопку на чайнике и видеть, что вода нагревается, но не знать, почему и как это происходит. Лучше всего понять что под сахаром это в intellij перейти tools -> kotlin -> show kotlin bytecode -> decompile. 2.Код на Java: Большинство библиотек написано на java. Без знания java ты не сможешь понять их код и, соответственно, эффективно использовать или модифицировать их в своих проектах на Kotlin. 3.Может быть что где-то будут куски кода на java в проекте.
>>3526941 > Такого рода функции для чего-то нужны? Чтобы бросить исключение. Nothing указывает на то, что ожидается, что функция завершиться раньше чем будет выполнена. Например из-за throw exception. > Они должны присутствовать в программе на котлине? Если у тебя есть логика, которой такое нужно, то да. В моей 5 летней практики пока ни разу не пригодилось.
>>3527037 >пока ни разу не пригодилось просто я раньше писал что-то подобное, но делал проще если встречается что-то неправильное то пишу сообщение во второй канал write(2, message, strlen(message)); exit(2);
>>3527073 Не уверен, что ты правильно понял значение функции возвращающей Nothing. В ней не предполагается никакого альтернативного выполнения кроме как ошибки. То есть это не то, что в функции вычисляющей 2+2 произошла ошибка. Это скорее то, что "нам нужно закрыть все ресурсы перед тем как бросить исключение и мы вызываем функцию закрывающую ресурсы и бросаем внутри неё исключение". Вот такая функция должна возвращать Nothing.