💻 Хорошо разбираешься в Kotlin? Готов по полочкам разложить, чем он отличается от Java? Проверь свои знания на этих 10 вопросах



Что из этого в настоящее время не поддерживается в Kotlin?

[x] JVM

[x] JavaScript

[x] LLVM

[_] .NET CLR



Какое выражение Kotlin эквивалентно такому int x = a ? b : c из Java?

[x] val x = a ?: b, c

[x] val x = if (a) b : c

[x] val x = a ? b : c

[_] val x = if (a) b else c



Что применимо для следующего объявления класса?

class Person (val name: String)

[x] Он package-private

[x] Он может быть расширен другими классами

[_] Он public

[x] У него приватное свойство "name"



Есть ли у Kotlin примитивные типы данных, такие как int, long, float?

[x] Нет, Kotlin не имеет и не использует примитивные типы данных.

[_] Нет, не на уровне языка. Но компилятор Kotlin использует примитивы JVM для лучшей производительности.

[x] Да, но Kotlin всегда конвертирует их в не примитивные аналоги.

[x] Да, Kotlin в этом отношении похож на Java.



Что такое to в этом ниже примере:

val test = 33 to 42

[_] Инфиксная функция, создающая пару (33, 42)

[x] Ключевое слово Kotlin для создания пары (33, 42)

[x] Ключевое слово для создания диапазона от 33 до 42

[x] Опечатка



Какое из объявлений функций является валидным?

[x] int sum(int a, int b)

[x] int sum(a: Int, b: Int)

[x] function sum(a: Int, b: Int): Int

[_] fun sum(a: Int, b: Int): Int



В чем ключевое отличие Iterable<T> и Sequence<T> в Kotlin?

[x] Iterable<T> работает только с immutable коллекциями, Sequence<T> применим к mutable

[x] Нет никакой разницы, т. к. Sequence<T> аналог Iterable<T>

[_] Последовательности обрабатываются лениво, итераторы жадно

[x] Последовательности обрабатываются по очереди, итераторы параллельно (многопоточно)



Чего не предлагает dataclass?

[x] Авто-генерируемый метод toString()

[x] Метод copy(...), для создания копии экземпляров.

[_] Автоматическое преобразование из/в JSON

[x] Авто-генерируемые методы hashCode() и equals()



Что выведет следующий код?

     

val listA = mutableListOf(1, 2, 3)

val listB = listA.add(4)

print(listB)



[x] [1, 2, 3, 4]

[_] True

[x] Ничего, тут ошибка компиляции

[x] Unit



В чем разница между a и b?

        

var a: String? = "KotlinQuiz"

var b: String = "KotlinQuiz"



[x] a является volatile, как в Java

[x] b является final и не может быть изменено

[x] a является final и не может быть изменено

[_] b никогда не сможет стать null



Ну как? 10 из 10?



@android_its