
Павел
04.04.2018
06:22:38

Vladislav
04.04.2018
06:24:01

Nikita
04.04.2018
06:26:38

Google

Даниил
04.04.2018
06:28:48

Vladislav
04.04.2018
06:29:03
Ну тогда ок

Quantum Harmonizer
04.04.2018
06:51:08
Это и есть DI
Да, любая аггрегация предполагает DI (и появилась раньше этого термина).
Исхожу из того, что люди так называют контейнеры.

Тимур
04.04.2018
07:36:30
Ой, arrayOfNulls(0)
да
странно почему list.size() не передали вместо 0
недосмотрели или есть какой-то глубокий смысл?

Kirill
04.04.2018
07:51:24

Quantum Harmonizer
04.04.2018
07:52:12
Да, это понятно, но это лишний объект и последующий рефлективный вызов. JVM умеет это оптимизировать, а вот умеет ли ART?..

Руслан
04.04.2018
07:55:49
Arrays of Wisdom of the Ancients
https://shipilev.net/blog/2016/arrays-wisdom-ancients/#_empty_array_instantiation

Vladislav
04.04.2018
07:58:39
А зачем IDEA подсвечивает смарт касты? Выглядит как будто warning. Постоянно напрягаюсь

Valentin
04.04.2018
07:59:44
для кого-то смарт-каст - это недопустимый косяк

Vladislav
04.04.2018
08:01:25
дык, если явный каст напишешь - тогда другой ворнинг )

Quantum Harmonizer
04.04.2018
08:01:39
явный каст — недопустимый косяк

Valentin
04.04.2018
08:01:43
+

Руслан
04.04.2018
08:02:18

Google

Vladislav
04.04.2018
08:02:21
в общем я у себя в подсветке загасил их, так код спокойнее выглядит

Valentin
04.04.2018
08:02:51
многие вообще все варны гасят - иногда откроешь чужой проект, и всё жёлтое

Quantum Harmonizer
04.04.2018
08:03:33
а некоторые их не видят)

Valentin
04.04.2018
08:04:29

Руслан
04.04.2018
08:06:14
Как на котлине не используя рефлексию написать код с варнингами и чтобы он работал?

Тимур
04.04.2018
08:12:14

Igor
04.04.2018
08:12:58
Сделай пул-реквест ?

Gleb
04.04.2018
08:13:02

Kirill
04.04.2018
08:13:06

Руслан
04.04.2018
08:13:32

Vladislav
04.04.2018
08:13:35
Кстати, про unchecked cast тут вопросик назрел. Если делаешь unchecked cast внутри лямбды, то @SuppressWarnings на методе не помогает. Что делать?

Quantum Harmonizer
04.04.2018
08:15:19

Vladislav
04.04.2018
08:18:51

Quantum Harmonizer
04.04.2018
08:21:34

Тимур
04.04.2018
10:41:39
а в чем разница между checkNotNull и requireNotNull?
вроде одинаковые совсем
что из них надо использовать?

Alexey
04.04.2018
10:47:03
По названию выглядит так, что один возвращает bool другой падает
Но нет ?

Google

Руслан
04.04.2018
10:48:41
Семантика-с
Разный смысл, разные эксепшены

Тимур
04.04.2018
10:51:02
ааа, вот теперь разглядел что они разные эксепшены кидают
а то сидел, смотрел сорцы и играл в игру: найдите отличия в этих двух картинках

Andrew
04.04.2018
10:52:21
статья в тему:
https://blog.egorand.me/preconditions-kt-validate-your-kotlin/

Vladislav
04.04.2018
10:54:34
Народ, а никто не в курсе компилятор котлина когда нибудь научится делать оптимизации генерируемого кода?
Вот например для такого:
val a = b ?: { "hello" }()
В данном случае можно полноценную лямбду не генерить, а он это делает.
Или это должно решаться на уровне ProGuard?

Kirill
04.04.2018
10:56:04
А зачем так писать? О_о

Bogdan
04.04.2018
10:56:18

Andrew
04.04.2018
10:56:24
> компилятор котлина когда нибудь научится делать оптимизации генерируемого кода?
жирный наброс ?
касательно конкретных оптимизаций, которых нету, но очень хочется видеть, сходи на kotl.in/issue
а вообще есть run { ... }

Vladislav
04.04.2018
10:56:58
ну это просто пример, в котором лямбду можно опустить при компиляции и заменить на обычный if, который очевидно будет быстрее выполняться

Bogdan
04.04.2018
10:57:57
у меня вопрос по лучше
addInputVariable(InputVariable("in1")) - должен вызыватся на Engine

Andrew
04.04.2018
10:59:31
this@engine.addInputVariable пробовал?

Kirill
04.04.2018
10:59:33
this@

Quantum Harmonizer
04.04.2018
10:59:38
@DslMarker

Vladimir
04.04.2018
10:59:39

Bogdan
04.04.2018
11:00:36

Boris
04.04.2018
11:00:40

Google

Quantum Harmonizer
04.04.2018
11:01:09

Andrew
04.04.2018
11:01:43

Bogdan
04.04.2018
11:01:44

Vladislav
04.04.2018
11:02:25
А зачем так писать? О_о
Можно усложнить:
val objId = obj.id ?: {
val obj = MyObject();
obj.prop = "someval";
repository.save();
obj.id
} ()

Bogdan
04.04.2018
11:02:29

Alexey
04.04.2018
11:02:34

Andrew
04.04.2018
11:02:37
а вообще кот прав, тебе доступны все this-ы, которые были по дороге, последний без метки.

Quantum Harmonizer
04.04.2018
11:02:52

Mikhail
04.04.2018
11:03:21

Andrew
04.04.2018
11:03:22
> компилятор котлина когда нибудь научится делать оптимизации генерируемого кода?
жирный наброс ?
касательно конкретных оптимизаций, которых нету, но очень хочется видеть, сходи на kotl.in/issue
а вообще есть run { ... }

Bogdan
04.04.2018
11:04:52
@Harmonizr не знаешь как избежать нескольких this

Quantum Harmonizer
04.04.2018
11:05:19

Bogdan
04.04.2018
11:05:32

Quantum Harmonizer
04.04.2018
11:05:36

Bogdan
04.04.2018
11:05:50

Quantum Harmonizer
04.04.2018
11:06:17
зачем вообще DSL? Там нельзя просто собрать граф объектов?

Bogdan
04.04.2018
11:08:40

Vladislav
04.04.2018
11:08:52
run { }
run это не про то судя по описанию

Andrew
04.04.2018
11:09:48
Calls the specified function block and returns its result.
Что значит не то? Ты же пытаешься описать блок (лямбду) и тут же вызвать её.

Google

Vladislav
04.04.2018
11:10:16
нужно вернуть либо само значение, либо вычислить его. Аналог Optional.orElseGet

Mikhail
04.04.2018
11:10:19

Andrew
04.04.2018
11:10:39
Ты издеваешься?
val objId = obj.id ?: run {
val obj = MyObject();
obj.prop = "someval";
repository.save();
obj.id
}
Ты точно читаешь ответы? :)

Vladislav
04.04.2018
11:11:49
да точно, проглядел

Quantum Harmonizer
04.04.2018
11:12:09

Vladislav
04.04.2018
11:12:12
но изначальный вопрос был не про то как run позвать

Andrew
04.04.2018
11:14:22
Фух, я уже думал, в телеграме по-тихому ввели мьют и мне его тут повесили.
По изначальному вопросу — ещё раз: компилятор котлина вполне себе умеет в оптимизации, если чего-то конкретного не хватает — можно заглянуть на багтрекер и либо проголосовать существующий фич-реквест, или завести новый, если ещё нету. Но в целом при наличии run { ... } нет смысла писать { ... } (), потому вряд ли кто-то этим будет заниматься ближайшее время при наличии более приоритетных задач.

sne18
04.04.2018
15:26:13
Внимание, москвичи! 27 апреля будет митап посвящённый Kotlin, в московском офисе JetBrains.
https://www.meetup.com/KotlinMoscow/events/249384155/

Dmitry
04.04.2018
15:28:33
О, у них офис в мск есть?

Valentin
04.04.2018
15:30:07
сейчас 15 attendees, завтра к вечеру 500
надо в лужниках собираться

Konstantin
04.04.2018
16:44:32
Это точно

Dumitru
04.04.2018
17:32:29
Я терпеть стал смотреть митапы по Котлину вместо сериалов )

Тимур
04.04.2018
17:43:33

Kirill
04.04.2018
17:46:47

sne18
04.04.2018
18:02:01
Вся сила в единстве