Что такое sealed класс?
Это abstract класс, который имеет ограниченную иерархию наследования. Не объявляется с ключевым словом inner. В качестве наследников могут быть:
– Object который не имеет конструктора;
– Class который может иметь конструктор с параметрами.
Преимущества перед Enum:
– Может иметь несколько экземпляров классов, enum работает подобно Singleton
– Классы наследники могут иметь разные конструкторы с различным количеством аргументов;
– При использовании when, все подклассы, которые не были проверены в конструкции, будут подсвечены IDE.
Это abstract класс, который имеет ограниченную иерархию наследования. Не объявляется с ключевым словом inner. В качестве наследников могут быть:
– Object который не имеет конструктора;
– Class который может иметь конструктор с параметрами.
Преимущества перед Enum:
– Может иметь несколько экземпляров классов, enum работает подобно Singleton
– Классы наследники могут иметь разные конструкторы с различным количеством аргументов;
– При использовании when, все подклассы, которые не были проверены в конструкции, будут подсвечены IDE.
В чем ключевое отличие Iterable<T> и Sequence<T> в Kotlin?
Anonymous Quiz
16%
Iterable<T> работает только с immutable коллекциями, Sequence<T> применим к mutable
11%
Нет никакой разницы, т. к. Sequence<T> аналог Iterable<T>
48%
Последовательности обрабатываются лениво, итераторы жадно
25%
Последовательности обрабатываются по очереди, итераторы параллельно (многопоточно)
Что за тип такой — Unit? Зачем нужен?
Тип Юнит это аналог джавовского Void, создан в основном для использования в дженериках для обозначения типа, который не возвращает значения.
Тип Юнит это аналог джавовского Void, создан в основном для использования в дженериках для обозначения типа, который не возвращает значения.
Как компилируются object declarations и companion objects?
Объявление object компилируется в статический класс со статическим полем, имя которого INSTANCE. с компаньонами тоже самое, но если имя не указано, оно будет Companion
Объявление object компилируется в статический класс со статическим полем, имя которого INSTANCE. с компаньонами тоже самое, но если имя не указано, оно будет Companion
Что выведет следующий код?
Anonymous Quiz
56%
[1, 2, 3, 4]
15%
True
8%
Unit
21%
Ничего, тут ошибка компиляции
Какая польза от typealias? Во что он компилируется?
Польза в более лаконичном названии уже существующих классов и переменных. Компилируется в public final class
Польза в более лаконичном названии уже существующих классов и переменных. Компилируется в public final class
Магия размерностей и магия Котлина. Часть первая: Введение в KotUniL
Амперы нельзя складывать с вольтами. Сантиметры можно складывать с дюймами, но очень внимательно. Иначе получится как с космическим аппаратом стоимостью 125 миллионов долларов Mars Climate Orbiter, который успешно долетел до Марса, но бездарно разбился о его поверхность.
Он разбился, поскольку разработчики его программного обеспечения не учли разницу используемых в разных частях системы физических единиц. По этой же самой причине до и после этой дорогой аварии взрывались и падали космические и летательные аппараты, тонули корабли и умирали люди.
Читать статью
Амперы нельзя складывать с вольтами. Сантиметры можно складывать с дюймами, но очень внимательно. Иначе получится как с космическим аппаратом стоимостью 125 миллионов долларов Mars Climate Orbiter, который успешно долетел до Марса, но бездарно разбился о его поверхность.
Он разбился, поскольку разработчики его программного обеспечения не учли разницу используемых в разных частях системы физических единиц. По этой же самой причине до и после этой дорогой аварии взрывались и падали космические и летательные аппараты, тонули корабли и умирали люди.
Читать статью
Telegraph
Магия размерностей и магия Котлина. Часть первая: Введение в KotUniL
Амперы нельзя складывать с вольтами. Сантиметры можно складывать с дюймами, но очень внимательно. Иначе получится как с космическим аппаратом стоимостью 125 миллионов долларов Mars Climate Orbiter, который успешно долетел до Марса, но бездарно разбился о…
В чем разница между a и b?
Anonymous Quiz
11%
a является volatile, как в Java
9%
b является final и не может быть изменено
5%
a является final и не может быть изменено
75%
b никогда не сможет стать null
Магия размерностей и магия Котлина. Часть вторая: Продвинутые возможности KotUniL
Это вторая статья из серии статей про магии размерностий и Котлина на примере библиотеки KotUniL.
В первой статье мы рассмотрели, как с помощью этой библиотеки не разбивать космические аппараты :-).
В этой статье мы рассмотрим менее очевидные, но не менее интересные фичи библиотеки.
Читать статью
Это вторая статья из серии статей про магии размерностий и Котлина на примере библиотеки KotUniL.
В первой статье мы рассмотрели, как с помощью этой библиотеки не разбивать космические аппараты :-).
В этой статье мы рассмотрим менее очевидные, но не менее интересные фичи библиотеки.
Читать статью
Зачем нужен тип Nothing, какие выражения имеют такой тип?
Если возвращаемый тип Nothing - значит return из данного метода выкинет нас полностью из приложения, либо там бесконечный цикл. Выражения ошибок(error) часто имеют такой тип. Компилируется такая функция в воид-функцию, возвращающая throw
Если возвращаемый тип Nothing - значит return из данного метода выкинет нас полностью из приложения, либо там бесконечный цикл. Выражения ошибок(error) часто имеют такой тип. Компилируется такая функция в воид-функцию, возвращающая throw
Это третья, заключительная статья серии, посвящённой библиотеке по манипулировали физическими величинами системы СИ, а также другими величинами, в Котлин. В ней мы рассмотрим, как фундаментальные математические структуры, которые природа “заложила” в систему СИ, предопределяют дизайн библиотеки и как возможности и ограничения Котлина были использованы при разработке библиотеки KotUniL.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Магия размерностей и магия Котлина. Часть третья: Смешение магий
Это третья, заключительная статья серии, посвящённой библиотеке KotUniL языка Котлин для работы с физическими и иными величинами. В ней мы рассмотрим, как фундаментальные математические структуры, которые природа “заложила” в систему СИ, предопределили дизайн…
В чем разница между val и var в Kotlin?
Anonymous Quiz
77%
Переменные, объявленные с помощью val, являются final, а переменные var – нет.
5%
Переменные, объявленные с помощью val, имеют доступ только к const членам.
7%
Переменные, объявленные с помощью var, являются final, а переменные val – нет.
10%
var ограничен видимостью ближайшего функционального блока, а у val видимость заканчивается на ({ }).
Когда компилятор использует примитивные типы? В каких случаях происходит автобоксинг?
Компилятор по максимуму пытается использовать примитивы, где это возможно. однако если мы указываем null-type(:?) в любом случае будет ссылочный тип
Компилятор по максимуму пытается использовать примитивы, где это возможно. однако если мы указываем null-type(:?) в любом случае будет ссылочный тип
Хитрости и приемы эффективного программирования на Kotlin
Kotlin — современный статически типизированный язык программирования. А еще он выразительный и лаконичный: функционал Kotlin позволяет сократить код и сделать его удобным для человеческого восприятия. Посмотрим, как это происходит: перепишем код по-котлиновски.
Читать статью
Kotlin — современный статически типизированный язык программирования. А еще он выразительный и лаконичный: функционал Kotlin позволяет сократить код и сделать его удобным для человеческого восприятия. Посмотрим, как это происходит: перепишем код по-котлиновски.
Читать статью
Telegraph
Хитрости и приемы эффективного программирования на Kotlin
Kotlin — современный статически типизированный язык программирования. А еще он выразительный и лаконичный: функционал Kotlin позволяет сократить код и сделать его удобным для человеческого восприятия. Посмотрим, как это происходит: перепишем код по-котлиновски.…
Что такое корутины (coroutines)?
Anonymous Quiz
17%
Функции, которые принимают другие функции в качестве аргументов или возвращают их.
72%
Штуки, обеспечивающие асинхронный код без блокировки потока.
6%
Термин Kotlin, используемый в методах класса.
5%
Автоматически сгенерированные методы hashCode() и equals() в data classes.
Зачем вообще нужны Sequences?
Для оптимизации производительности в работе с большими коллекциями(от 1000). Фишка в том, что значения в таких коллекциях создаются только по мере необходимости, не инициализируя их заранее.
Из за этого нет доступа к содержимому по индексу, а также не контролируется размер.
Для оптимизации производительности в работе с большими коллекциями(от 1000). Фишка в том, что значения в таких коллекциях создаются только по мере необходимости, не инициализируя их заранее.
Из за этого нет доступа к содержимому по индексу, а также не контролируется размер.
Моя любимая функция Kotlin
За последние несколько лет я видел много дискуссий о функциях Kotlin. Среди обсуждаемых тем обнуляемость всегда в первых рядах. Мне она нравится, но это определенно не моя любимая функция.
Больше всего в Kotlin мне нравятся некоторые мелкие особенности, благодаря которым язык становится очень элегантным. Например, смарт-кастинг (контракты), приостановка, функции приемника/расширения и делегирование.
Но на данный момент моей любимой особенностью является сочетание функций inline и suspend.
Читать статью
За последние несколько лет я видел много дискуссий о функциях Kotlin. Среди обсуждаемых тем обнуляемость всегда в первых рядах. Мне она нравится, но это определенно не моя любимая функция.
Больше всего в Kotlin мне нравятся некоторые мелкие особенности, благодаря которым язык становится очень элегантным. Например, смарт-кастинг (контракты), приостановка, функции приемника/расширения и делегирование.
Но на данный момент моей любимой особенностью является сочетание функций inline и suspend.
Читать статью
Telegraph
Моя любимая функция Kotlin
За последние несколько лет я видел много дискуссий о функциях Kotlin. Среди обсуждаемых тем обнуляемость всегда в первых рядах. Мне она нравится, но это определенно не моя любимая функция. Больше всего в Kotlin мне нравятся некоторые мелкие особенности, благодаря…