
Quantum Harmonizer
10.08.2018
14:56:17
локальную пропустит)

Костя
10.08.2018
14:56:31
только lateinit можно не инциализировать

I
10.08.2018
14:56:37

Костя
10.08.2018
14:56:40
но lateinit нельзя к примитивным типам

Google

Quantum Harmonizer
10.08.2018
14:57:01

I
10.08.2018
14:57:02

Костя
10.08.2018
14:57:10
неявности мало

Quantum Harmonizer
10.08.2018
14:57:29

Костя
10.08.2018
14:57:42
а вот почему lateinit нельзя для примитивных типо, это хороший вопрос к гуру )

Dmitry
10.08.2018
14:57:53

I
10.08.2018
14:58:02

Костя
10.08.2018
14:58:37

I
10.08.2018
14:58:38

Костя
10.08.2018
14:58:39
внутри

Quantum Harmonizer
10.08.2018
14:58:42

Mikhail
10.08.2018
14:59:09

Google

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

Quantum Harmonizer
10.08.2018
14:59:41
Я солидарен с разработчиками языка: дефолтных значений быть не должно.

Bogdan
10.08.2018
14:59:51

Костя
10.08.2018
15:00:37

Bogdan
10.08.2018
15:00:39

Quantum Harmonizer
10.08.2018
15:02:10

Костя
10.08.2018
15:03:00
и будет боксинг
типо когда null это Integer объектный, а когда значение то уже int ?
то есть на лету менятся будет тип

Vladimir
10.08.2018
15:03:09

Anton
10.08.2018
15:03:48
а почему не забоксить если lateinit модификатор стоит

Bogdan
10.08.2018
15:04:04
боксинг, анбоксинг

Костя
10.08.2018
15:04:21
а в чём боксинг тогда
с nullable Int

Anton
10.08.2018
15:04:54
в том что он оборачивается и становится null

I
10.08.2018
15:04:57
Так что все-таки null или 0?

Bogdan
10.08.2018
15:05:12
с nullable Int
если обычный Int компилятор может подставить джавовский int примитив, с нулаблом уже будет объект

Костя
10.08.2018
15:05:24
а

Bogdan
10.08.2018
15:05:29

Костя
10.08.2018
15:05:30
оу

Google

Костя
10.08.2018
15:05:56

Bogdan
10.08.2018
15:06:33

Костя
10.08.2018
15:06:43
не, про Котлин же

Vladimir
10.08.2018
15:06:47

Anton
10.08.2018
15:07:05
кажется удобно было бы)

Vladimir
10.08.2018
15:07:46

Костя
10.08.2018
15:07:54
ну то есть я пишу
lateinit var asd: Int(?)
и оно понимает например само что это Integer
ну то есть я не вижу разницы с простыми объектами
т.к. int может быть объектным тоже же
Integer

Anton
10.08.2018
15:08:28
ну да

I
10.08.2018
15:09:53
Так какой вывод? Какая правильная начальная инициализация для Int? ?

Bogdan
10.08.2018
15:10:03

Костя
10.08.2018
15:10:03
какую задашь сам

Bogdan
10.08.2018
15:10:20

Костя
10.08.2018
15:10:20
или студию можно так тоже ?

Bogdan
10.08.2018
15:10:37

I
10.08.2018
15:10:43

Bogdan
10.08.2018
15:10:48

Google

Костя
10.08.2018
15:11:04

Bogdan
10.08.2018
15:11:05
хотя не в последней версии котлина накосячили (1.3 вроде)

Костя
10.08.2018
15:11:10
ты можешь его задать как null
может как объект
вариации

Bogdan
10.08.2018
15:11:34

I
10.08.2018
15:13:19
всм ? поставь null и не задалбуй
Так вот если бы они оставили неявную инициализацию как в джава было бы точнее, я посмотрел блю принты гугла они вообще стараются юзать lateinit

Bogdan
10.08.2018
15:13:50

Alexey
10.08.2018
15:16:19

Admin
ERROR: S client not available

I
10.08.2018
15:16:49

Bogdan
10.08.2018
15:17:28

dimiii
10.08.2018
15:18:54
lateinit var asd: Int = 42
Все спокойны?

Quantum Harmonizer
10.08.2018
15:19:00

Bogdan
10.08.2018
15:19:30

dimiii
10.08.2018
15:19:32
На крайняк можно смазать синтаксическим сиропом
lateinit var asd: Int with default 42

Quantum Harmonizer
10.08.2018
15:19:51

Bogdan
10.08.2018
15:20:11

Google

dimiii
10.08.2018
15:20:29
при чём тут lateinit тогда?
а суть в том, что чем страдать и выдумывать чем же проинициализиовать или делать боксинг /анбоксинг - взять и проинициалировать чем-то

Quantum Harmonizer
10.08.2018
15:20:48

dimiii
10.08.2018
15:21:01
есс-но lateinit не нужен - это я для усиления драмы оставил

Костя
10.08.2018
15:21:06
так оно не работает с lateinit
как раз про то и разговор же
что нужно убирать lateinit и инициализировать

dimiii
10.08.2018
15:21:39
аминь

Глеб
10.08.2018
15:47:02
Подскажите, пожалуйста, могу ли я проверить, что у меня generic является nullable?
Псевдокод того, что я хочу: https://gist.github.com/78cca544e359e0755bb69a751a48bd67.git

Bogdan
10.08.2018
15:49:24
дженерикк стирается в рантайме
может вам нужно проверит переменую типа T ?

Глеб
10.08.2018
15:56:08
Наверное, я просто запутался. Попробую еще подумать, спасибо

Bogdan
10.08.2018
16:07:13
val test = Test(10)
val i = test.t * 10 ну тут t кастуется к Int
должно работать ?, псевдо код

Глеб
10.08.2018
16:08:47
Это то понятно. Смотрите, что я хочу: я хочу написать универсальный делегат, поддерживающий nullable-типы в зависимости от дефолтного значения:
https://gist.github.com/f4db99b75517b9c9170382634942a02c.git
Имею в виду делегат для Android Preferences. И что-то я явно делаю не так

Bogdan
10.08.2018
16:10:55
https://t.me/kotlin_mobile не уверен но может это вопрос лучше туда

Глеб
10.08.2018
16:10:57
Нужно, чтобы в случае, если T является nullable, дефолтное значение было null

Bogdan
10.08.2018
16:11:16
андроид специфичные ввещи
inline fun <reified T>
может это помочь, там ты Т можешь проверить на тип