
Egor
01.08.2018
09:20:12
А, ну да
ЧО, ПАЦАНЫ, КОГДА ТАМ KOTLIN NATIVE ЗАРЕЛИЗИТСЯ?

Igor
01.08.2018
09:20:30

Vladimir
01.08.2018
09:20:35

Google

Pavel
01.08.2018
09:22:28

Igor
01.08.2018
09:22:33

Mikhail
01.08.2018
09:22:35
кстати, а значок пайпа |> случаем не из F#?

Igor
01.08.2018
09:23:27

Vladimir
01.08.2018
09:23:49

Mikhail
01.08.2018
09:24:22
кажется, там (в F#) приоритет оператора определяется по первому символу значка

Pavel
01.08.2018
09:24:25

Vladimir
01.08.2018
09:24:37

Andrew
01.08.2018
09:25:23

Mikhail
01.08.2018
09:26:03

Egor
01.08.2018
09:26:20
+ не возникает проблем с выведением типов

Mikhail
01.08.2018
09:26:53
а какие проблемы у apply?

Google

Egor
01.08.2018
09:27:14
Да тут выше как-то раз была история

Vladimir
01.08.2018
09:27:23

Andrew
01.08.2018
09:28:16

Egor
01.08.2018
09:29:03
а какие проблемы у apply?
fun getFragment(state: Int): Fragment =
when (state) {
1 -> Type1Fragment()
2 -> Type2Fragment()
else -> Type3Fragment()
}.apply { /* log */ }
Компилятор не мог вывести Fragment, выводил Any

Mikhail
01.08.2018
09:30:32

Egor
01.08.2018
09:30:37
В оригинале вообще был also, но у них все равно контракт почти одинаковый

Mikhail
01.08.2018
09:31:07
а что в логе?
ну also так-то поидиоматичнее тут будет, если только логирование, да
*полез в REPL*

Egor
01.08.2018
09:32:53
Да в логе ничего особенного, просто что-то вроде Timber.i("chosen fragment is: %s", it.toString())
Смысл в том только, что без экстеншена он тип нормально вывел, а с экстеншеном - нет

Quantum Harmonizer
01.08.2018
09:33:42
то же самое, например, если пишешь nullableMap ?: HashMap().also { nullableMap = it }

Egor
01.08.2018
09:34:30

Quantum Harmonizer
01.08.2018
09:34:43
знать бы, чем заменить её

Vladimir
01.08.2018
09:37:26

Quantum Harmonizer
01.08.2018
09:37:42

Mikhail
01.08.2018
09:38:02

dimiii
01.08.2018
09:39:59
*А какой тип выводит компилятор в идее для it в println(it)?

Egor
01.08.2018
09:40:28

Google

Egor
01.08.2018
09:40:57
В общем, в тот раз все закончилось именно тем, что никто так и не разобрался, почему оно ломалось
Но может быть из-за интеропа с джавой, да

Quantum Harmonizer
01.08.2018
09:43:24

Mikhail
01.08.2018
09:44:43

Quantum Harmonizer
01.08.2018
09:54:19

Dmitry
01.08.2018
10:09:18
ещё 1 вопрос, а вот как мне при top-level functions, найти все методы которые описаны в 1 файле получается, ну в Java я мог дёрнуть класс и посмотреть, а здесь как?

Quantum Harmonizer
01.08.2018
10:10:02

Dmitry
01.08.2018
10:10:11
а из котлина как?
из Java то понятно...

Quantum Harmonizer
01.08.2018
10:11:04
можно, конечно, Class.forName...

Dmitry
01.08.2018
10:12:02

Celt
01.08.2018
10:12:38
Опять?

Vladimir
01.08.2018
10:12:46

Pavel
01.08.2018
10:13:57

Mikhail
01.08.2018
10:14:12
Если файл называется Foo.kt, то из джавки он выглядит как класс FooKt

Dmitry
01.08.2018
10:14:54
просто в Java стильные классы они как разграничиваются по зоне ответственности
тут все в 1 куче будет и концов не соберёшь

Google

Quantum Harmonizer
01.08.2018
10:15:39
а, то есть вопрос не про рефлекшен?)

Dmitry
01.08.2018
10:16:01
возможно криво задал

Pavel
01.08.2018
10:16:15

Dmitry
01.08.2018
10:17:01
по этому немного скептически отношусь
если есть интересные примеры кто так уже писал.... можете скинуть?
типо open source на котлине

Quantum Harmonizer
01.08.2018
10:17:54

Admin
ERROR: S client not available

Pavel
01.08.2018
10:18:05

Dmitry
01.08.2018
10:18:06

Quantum Harmonizer
01.08.2018
10:18:47

Dmitry
01.08.2018
10:19:20
ну тут экстешен, а если я не могу применить ее как экстешен

Quantum Harmonizer
01.08.2018
10:21:12

Andrew
01.08.2018
10:21:29

Dmitry
01.08.2018
10:23:13
а так мне придется лезть внутрь

Google

Dmitry
01.08.2018
10:23:54
я возможно бред несу... я не силен в котлине

Quantum Harmonizer
01.08.2018
10:24:32

Andrew
01.08.2018
10:24:59
а так мне придется лезть внутрь
Я про сами классы. Откуда ты знаешь, где и какие классы есть? Вот оттуда же ты в котлине кроме классов найдёшь функции. Обычно это документация :)

dimiii
01.08.2018
10:26:06

Andrew
01.08.2018
10:26:31
а так мне придется лезть внутрь
В крайнем случае чисто из IDE можно написать имя пакета и смотреть список функций там. Потом нормальный импорт посредством Alt+Enter сделать. Но мне ни разу пока не приходилось чёт так искать.

Dmitry
01.08.2018
10:26:34

Andrew
01.08.2018
10:26:51

Dmitry
01.08.2018
10:27:56
блин ну Java я делю по классу и всегда по нему могу написав его в коде быстро пройтись по методам
а если делать top-level будет каша всегда
и только лезть в сам класс и смотреть что там есть

Pavel
01.08.2018
10:28:58
а если просто object юзать это тоже плохо?
да ничего плохого, язык позволяет, значит можно. Просто top level и extensions это более идеоматично и стоит отдавать им предпочтения, но если хоется object declaration - то пожалуйста, никто не мешает.

Dmitry
01.08.2018
10:29:07
и не дай бог нейминг похожий... то вообще жопа

Andrew
01.08.2018
10:29:48
а если делать top-level будет каша всегда
Ещё раз
а) документация
б) список функций в пакете
в) действительно заглянуть в сорцы
Ты попробуй сначала поработать, к примеру, со стандартной библиотекой, которая во многом так сделана, а потом критикуй :)

Pavel
01.08.2018
10:30:00

Dmitry
01.08.2018
10:30:03

Andrew
01.08.2018
10:31:11

dimiii
01.08.2018
10:31:12

Dmitry
01.08.2018
10:31:47

Pavel
01.08.2018
10:32:21
@dmitry_konurov плюс смотри пояснение в одкументации https://kotlinlang.org/docs/reference/classes.html последний пункт "Companion objects"

Dmitry
01.08.2018
10:34:31