@kotlin_lang

Страница 320 из 982
Lev
13.09.2017
15:22:16
Давеча нашел, они private в php рефлекшеном убирали... копец

Mi
13.09.2017
15:22:49
Короче, на дженериках даже джавовых можно машину Тьюринга написать

Просто такими снипетами отвлеченными, а потом сказать "я не это имел в виду"

Хер что получится

Google
Lev
13.09.2017
16:06:47
А bpmn никто не занимался?

Руслан
13.09.2017
16:14:31
Оффтоп

Igor
13.09.2017
16:21:13
Что может плохо случится от unit тестов в android проекте, если имена у них заданы с пробелом? Типа: fun ‘addition is correct’() IDEA ругается Identifier not allowed in Android projects но тесты отрабатывают

Lev
13.09.2017
16:31:36
Есть MutableMap<String, MutableList<String» Как ее красиво наполнять не расписывая, есть ли list или нету?

getOrPut?

Denis
13.09.2017
16:36:08
getOrPut?
Похоже на то

Андрей
13.09.2017
16:44:05
Что может плохо случится от unit тестов в android проекте, если имена у них заданы с пробелом? Типа: fun ‘addition is correct’() IDEA ругается Identifier not allowed in Android projects но тесты отрабатывают
В андроиде такие имена почему-то не работают. Я как-то пробовал, то что-то валилось. Поэтому ошибка линта правильная. Другое дело что если это юнит тест, который на jvm запускается, а не на андроиде, то все нормально отрабатывает.

Anton
13.09.2017
16:45:22
На грувях работает)

Igor
13.09.2017
16:47:34
В dex байткоде такие имена не поддерживаются вроде как
Вот именно что это test , а НЕ androidTest и запускаться он будет только локально. Видимо lint не разбирает.

Lev
13.09.2017
16:47:50
А вообще assert прилично применять? Для проверки всяких аргументов или состояния?

Google
Lev
13.09.2017
16:48:53
Типа при разработке попроверять, а проде уже не проверять?

Dibro
13.09.2017
16:48:56
для дебага

Lev
13.09.2017
16:49:19
А для прода? If?

Dibro
13.09.2017
16:50:22
А для прода? If?
то что стоит проверять через ассерт в дебаге - в проде всегда должно быть ок

Lev
13.09.2017
16:53:23
У вас бывает что в ифе доффига условий? Как вы это форматируете? Переводы на новую строчку ужасны для || или &&.

Igor
13.09.2017
16:55:16
А Kotlin require() / requireNotNull() и тд кто-нибудь юзает?

Lev
13.09.2017
16:58:23
О, assert для прода? =)

никак не пойму в чем фишка inline?

Dmitry
13.09.2017
17:05:13
никак не пойму в чем фишка inline?
Посмотри байт-код метода где вызываешь инлайн-функции

? animufag ?
13.09.2017
17:18:32
ravshancha
13.09.2017
17:19:11
nado na funksiyu vivesti

? animufag ?
13.09.2017
17:20:06
ну да. локальный или объектный val

правда зачастую не можешь придумать этому имя и оставляешь как есть

Lev
13.09.2017
17:38:46
Омг, так require и requireNotNull - возвращают значение если оно прошло проверки. Можно использовать об обезопашивания от null

Например для доставания с карты

val value = requireNotNull(mapOfLists[key]).keyOfList

А не, только requireNotNull такой (ну да, для require возвращать то не понятно что)

requireNotNull - плохая функция... это позволяет писать код, забив на NPE и генеря другой эксепшн.

Не пойму я ка можно правильно работать с картами, если нет нужного ключа... все равно npe бросать

Google
You
13.09.2017
17:57:52
Lev
13.09.2017
17:59:21
Далеко не всегда можно пропустить если null.

Dmitry
13.09.2017
18:00:52
If уже не в моде?

You
13.09.2017
18:01:10
ага

Lev
13.09.2017
18:39:38
for (step in steps.sortedBy { it.order }) { } Оно ведь не будет сортировать каждую итерацию?

Kirill
13.09.2017
18:40:29
нет

Dibro
13.09.2017
18:44:45
it
предполагаю, что там дальше шёл большой кусок кода, а it часто сбивает с толку в таких ситуациях

Lev
13.09.2017
18:45:10
нет, не шел.

Dibro
13.09.2017
18:45:44
ну ладно

Lev
13.09.2017
18:46:06
копец, почему буквы в нотификациях телеги в обратном порядке...

Kirill
13.09.2017
18:46:30
видимо, у человека в нике юникодный спецсимвол

Dmitry
13.09.2017
18:47:57
это уже обсуждали да)

Lev
13.09.2017
18:53:42
Вот забавно... сахар в шарпе - бесит, а тут - нет. mapOf("group" to listOf("crew")) - еще сахарнее можно? listOf вроде ничем не заменить? Вот.. to сделали для какой то там Pair, а [] для иммутейбла - нет

Maxim
13.09.2017
18:54:42
it
Имхо, it лучше стараться избегать в коде. Читаемость понижаеться сильно от it.

Igor
13.09.2017
18:54:43
Да

ilya
13.09.2017
18:54:57
Yep

You
13.09.2017
18:55:16
ок, учту

Lev
13.09.2017
18:55:44
Что даже steps.sortedBy { it.order } плохо?

Google
Dibro
13.09.2017
18:56:39
Что даже steps.sortedBy { it.order } плохо?
плохо в больших лямбдах, а тут как раз кстати

Dmitry
13.09.2017
18:56:48
Имхо, it лучше стараться избегать в коде. Читаемость понижаеться сильно от it.
ну если у тебя подряд вложеннность - возможно, от одного it ничего не понижается

Lev
13.09.2017
18:57:50
не ну лямбду в лямбду наверно не надо через it

mapOf("group" to listOf("crew")) - еще сахарнее можно?

Igor
13.09.2017
18:58:25
Что даже steps.sortedBy { it.order } плохо?
Вроде норм, я бы вообще сделал бы steps.sortedBy(_.order) (это не котлин)

Lev
13.09.2017
18:59:17
как эта

там только it вроде можно

Руслан
13.09.2017
19:02:13
Слушал сегодня подкаст, так там один парень false фальшью обозвал

Lev
13.09.2017
19:03:20
)

Igor
13.09.2017
19:04:17
Maxim
13.09.2017
19:08:17
Руслан
13.09.2017
19:10:18
Слушал сегодня подкаст, так там один парень false фальшью обозвал

Igor
13.09.2017
19:10:50
Lev
13.09.2017
20:05:06
Короче все отображения покрылись !!

хрень

Boris
13.09.2017
20:05:56
Честно говоря я не очень понял проблему

Lev
13.09.2017
20:09:39
anyMap[anyKey] - это всегда требует проверки на non null

И в 99% эта "проверка" будет через !!

ну или можно через let, но это будет выглядеть забавно - система просто ничего не будет делать. тыкаешь, а она ничего не делает

Google
Lev
13.09.2017
20:11:40
Можно по красивей и по длинее через requireNonNull, зато можно сообщение показать юзеру, хоть сколько то осмысленное

Boris
13.09.2017
20:11:48
А что она будет делать с налпонтерэксепшном?

Lev
13.09.2017
20:12:05
Бросит юзеру, типа ошибка и продолжит дальше работать

У меня периодически депресняк из-за этого... я и без котлина не помню кода последний раз NPE ловил

Boris
13.09.2017
20:13:27
Так напиши map[key] ?: throw LocalizableException("some-key")

Lev
13.09.2017
20:14:48
я свой requireNonNull напишу

Boris
13.09.2017
20:15:00
Зачем налпонтерэксепшн то?

Lev
13.09.2017
20:15:01
покороче только

говорю же - свой, без npe

Boris
13.09.2017
20:15:25
Сделай тогда лучше экстеншн к мапе

Lev
13.09.2017
20:15:42
Хех

Boris
13.09.2017
20:15:47
getReqired

Или типа того

Lev
13.09.2017
20:16:04
Меня всегда пугали такие вещи как экстеншены - засталяешь клиента тащить все свои наработки

Boris
13.09.2017
20:16:39
Ну пиши тогда каждый раз целиком ?

А свой requireNotNull чем лучше?

Страница 320 из 982