
Quantum Harmonizer
29.09.2018
11:32:08
Например:
userName.map(isEmpty())

Mikhail
29.09.2018
11:32:14
а есть kotlin repl чтобы был standalone?

Quantum Harmonizer
29.09.2018
11:32:39

Konstantine
29.09.2018
11:33:02

Google

Vladimir
29.09.2018
11:33:24

Quantum Harmonizer
29.09.2018
11:33:50

Konstantine
29.09.2018
11:34:23

Quantum Harmonizer
29.09.2018
11:35:05

Konstantine
29.09.2018
11:35:17
По мне явное лучше неявного. :)
А то какие-то там isEmpty.

Mikhail
29.09.2018
11:36:05

Quantum Harmonizer
29.09.2018
11:36:48
Проблема в том, что клиент библиотеки будет ожидать ровно такого названия

Konstantine
29.09.2018
11:37:46

Quantum Harmonizer
29.09.2018
11:38:21

Google

Mikhail
29.09.2018
11:38:33
А как можно обернуть?
ну типа интерфейс Emptyable<T>, у него fun isEmpty() и много-много factory method-ов (которые можно оформить как operator fun <T> Emptyable.Companion.invoke(T): Emptyable<T>)

Vladimir
29.09.2018
11:38:36

Mikhail
29.09.2018
11:38:49

Konstantine
29.09.2018
11:38:55

Mikhail
29.09.2018
11:38:57
выведи имя класса в repl

Quantum Harmonizer
29.09.2018
11:39:23

Vladimir
29.09.2018
11:39:25

Quantum Harmonizer
29.09.2018
11:39:33

Konstantine
29.09.2018
11:40:13

Vladimir
29.09.2018
11:40:25
val a = ::method
Я про ситуацию с вызовом map/filter/etc
Если нужна ссылка на метод, то конечно нужно будет во что-то обернуть

Mikhail
29.09.2018
11:42:16

Vladimir
29.09.2018
11:44:06
Я выше написал, что имел в виду использование в inline-фукнциях вместо лямбды. Если в таком виде использовать ссылку на функцию, компилятору конечно придётся её обернуть в класс.

Mikhail
29.09.2018
11:44:18
а нет
для iterable inline
для sequence - нет
В любом случае если @Harmonizr собирается ее куда-либо отдавать, то она не будет inline 100%

Quantum Harmonizer
29.09.2018
12:11:18

Google

Konstantine
29.09.2018
12:12:13

Quantum Harmonizer
29.09.2018
12:12:50

Konstantine
29.09.2018
12:13:07

Igor
29.09.2018
13:34:02

Quantum Harmonizer
29.09.2018
13:40:44
Я тут подумал... isEmpty... — а дальше автодополнение поможет.
Всем спасибо.

Igor
29.09.2018
13:43:33
А есть тут кто-нибудь, кто пишет полностью на чистых функциях domain/data слои?)

Andrey
29.09.2018
13:56:23

Badya
29.09.2018
13:57:02

Igor
29.09.2018
13:57:04

Quantum Harmonizer
29.09.2018
13:57:30

Igor
29.09.2018
13:58:06

Quantum Harmonizer
29.09.2018
13:58:55

Igor
29.09.2018
14:00:51
Мне просто интересно общее впечатление, и насколько от этого стало проще жить.

Badya
29.09.2018
14:02:07

Igor
29.09.2018
14:04:13
Даже депенденси в функцию передавать?
А как иначе-то?) Иначе не stateless. Грубо говоря, мне хотелось бы в итоге прийти к следующему виду проектов:
1) AppStore со стейтом
2) Graph со стейтом
3) Views со стейтом
4) Все остальное – полностью stateless, все зависимости только через функции.

Quantum Harmonizer
29.09.2018
14:05:02

Konstantin
29.09.2018
14:42:00

Google

Konstantin
29.09.2018
14:43:57
Ну то есть если они будут продюсить изменения где-то еще, то это уже не чистые функции

Igor
29.09.2018
14:44:13

Konstantin
29.09.2018
14:50:21

Igor
29.09.2018
14:51:22

Admin
ERROR: S client not available

Mikhail
29.09.2018
16:17:10

Igor
29.09.2018
16:20:26

Quantum Harmonizer
29.09.2018
18:36:58
интересно, а есть способы автоматизации генерации @ReplaceWith при рефакторинге?
@Deprecated("Was generalized.", ReplaceWith("map(isNonEmptyCollection())",
"(...).map", "(...).isNonEmptyCollection"))

Konstantin
29.09.2018
19:08:39

Igor
29.09.2018
19:14:45

Quantum Harmonizer
29.09.2018
19:44:17

Andrey
29.09.2018
19:45:19
?

Maxim
29.09.2018
21:11:01

Artem
29.09.2018
21:11:58
Погоди, это где?

Жабра
29.09.2018
21:17:22
https://insert-koin.io/docs/1.0/documentation/koin-core/index.html#_using_scopes я правильно понимаю, что модуль со скоупом всё равно надо загрузить через loadKoinModules, просто ещё накладывается необходимость создавать и уничтожать их?

Quantum Harmonizer
29.09.2018
21:29:43
Погоди, это где?
https://github.com/Miha-x64/reactive-properties/blob/master/properties/src/main/kotlin/net/aquadc/properties/extensionsInline.kt#L293

Artem
29.09.2018
21:30:36
Понял, спасибо

Google

picty
30.09.2018
09:45:59
Ребята, подскажите, заметил такой момент:
enum class ExampleEnum {
A,
B
}
subscribeOnExample().subscribe{
when(it){ //it is ExampleEnum
ExampleEnum.A -> ...
ExampleEnum.B -> ...
}
Но вот на when(it) — предупреждение:
Enum argument can be null in Java, but exhaustive when contains no null branch
Что с этим делать?
Писать else -> {} — предупреждение уходит, но смысл данного действа несовсем понятен в данном случае.

Quantum Harmonizer
30.09.2018
09:47:28

picty
30.09.2018
09:49:03

Dmitry
30.09.2018
11:43:16
else лучше

Nikolay
30.09.2018
11:44:11
else лучше
Новые знания енума будут глотаться этим else молча, нехорошо так делать.

Dmitry
30.09.2018
11:44:42
их не глотать надо, а кидать что-то типа IllegalArgumentException

Quantum Harmonizer
30.09.2018
11:51:34

Dmitry
30.09.2018
11:54:21
не во всех случаях работает. например, если скомпилить код с одной версией enum-а, а в рантайме подкинуть другую

Nikolay
30.09.2018
11:57:02

Alexey
30.09.2018
11:58:17

Bogdan
30.09.2018
12:00:43

Dmitry
30.09.2018
12:06:40
например, делаешь плагин, который использует апишку контейнера. затем версия контейнера обновилась
очень искусственный такой пример

Konstantine
30.09.2018
12:07:30
Есть тут кто-нибудь, кто использовал корутины с clean'ом?
Как вы их вообще использовали? Какие функции у вас были suspend и где они вызывались?
В идеале посмотреть код, может у кого пет-проджект завалялся.
Речь про андроид.

Mikhail
30.09.2018
12:52:05