how it affects the whole app. Common mistakes are ?.let instead of null check, extension functions for primitive types, lazy for UI initialization. Sequence Api is black magic”
Я тут призадумался на счет правдивости.
1) let же оптимизируется инлайном, следовательно не несет каких-то доп затрат.
2) Экстеншены для примитивов разве не такими же статик методами реализуются?
3) Хз что имело ввиду, но вероятно ненужные затраты на лямбда-функции. Это правдиво.
4) Sequence - ну тут вообще сложно что-то сказать, так как без примера особо не понятно с чем сравнение.
1) это просто некрасиво 2) ну тут спорно, поинт автора не в производительности заключается, а в манкипатчинге, которого гет 3) так и есть, не нужные объекты на лямбды 4) сиквенсы это компиляторная магия (точнее суспенды - магия, а сиквенсы просто на них построены), потому что там можно делать val sequence = sequence { yield(computation()) yield(computation2() } и потом sequence.take(1) вернёт первый computation без выполнения computation2 (лямбда выполнится не до конца, а после следующего take(1) закончит выполнение)
В каком месте лет не красивый? Делать отдельную переменную под something.thing для работы с ней красивше?
уже много раз поднимали этот вопрос, и я в начале был на позиции, что ?.let это круто. но в большинстве случаев проверки на нулл красивее.
Вообще, красивее это явно не аргумент спора, это как минимум вкусовщина, я же говорю что инлайн убирает оверхед, тогда особо проблем с летом не остается
invokedynamic на лямбду тоже убирает оверхед, но мне кажется, что претензия к let в том, что его неправильно используют и делают говнокод
Ты где в котлине indy нашел?
Кроме как в конкатенации строк
а, я дурак значит :)
Не, issue и правда есть
Ещё для fun interface в 1.5 есть вроде
Обсуждают сегодня