Size: a a a

2021 August 01

AN

Alexander Nozik in Kotlin JS
Инит блоки хороши для валидации аргументов
источник

с#

саша сок #KotlinGang... in Kotlin JS
фактори функции?
источник

с#

саша сок #KotlinGang... in Kotlin JS
и если бы можно было так делать, то как раз можно "расширять" конструкторы
источник

VA

Victor Alenkov in Kotlin JS
ну, то есть он не однозначно плох. И применять всё же можно, когда знаешь куда и для чего, а не бездумно втаскивая
источник

AN

Alexander Nozik in Kotlin JS
Ну для просто валидации это может быть оверкил. Но я первый скажу, что инит блоков стоит избегать, если альтернатива не слишком дорогая.
источник

Na

Neon an Děv 8) in Kotlin JS
это значит, что это java либа и lateinit только для интеропа
источник

AN

Alexander Nozik in Kotlin JS
Он однозначно плох если не брать две перечисленные выше задачи
источник

IP

Iaroslav Postovalov in Kotlin JS
Ломает так же, как и !!
источник

с#

саша сок #KotlinGang... in Kotlin JS
и это тоже плохо спмо собой
источник

с#

саша сок #KotlinGang... in Kotlin JS
но также как и as
источник

AN

Alexander Nozik in Kotlin JS
Опять ты передергиваешь. Нет, не так же. !! упадет с разумной ошибкой и часто в месте использования, а не в месте декларации
источник

VA

Victor Alenkov in Kotlin JS
ну, тут есть requireNotNull и checkNotNull
источник

с#

саша сок #KotlinGang... in Kotlin JS
как говорил бреслав, ссылаясь на теорему геделя о неполноте, статическая типизация не может быть идеальной, поэтому такие хаки надо
источник

с#

саша сок #KotlinGang... in Kotlin JS
а вот лейтинит не надо
источник

VA

Victor Alenkov in Kotlin JS
val t = MyObject ( t= gNull!!, p=yNull!!)

вот прям сразу поймёте где ошибка с null будет - прям разумная ошибка будет
источник

IP

Iaroslav Postovalov in Kotlin JS
Нормальная ошибка
Exception in thread "main" kotlin.UninitializedPropertyAccessException: lateinit property i has not been initialized
 at BKt.getI(B.kt:1)
 at BKt.main(B.kt:3)
источник

AN

Alexander Nozik in Kotlin JS
Она будет в месте использования. И вы в коде сразу увидите, где проблема. Как раз по этому !!.
источник

AN

Alexander Nozik in Kotlin JS
Тебе поспорить ради поспорить?
источник

Na

Neon an Děv 8) in Kotlin JS
в ошибке если что, пишется имя проперти
источник

AN

Alexander Nozik in Kotlin JS
Это кстати так себе код потому что инициализация в конструкторе опять же
источник