169 похожих чатов

Наткнулся на коммент под https://medium.com/bumble-tech/data-classes-in-kotlin-the-real-impact-of-using-it-6f1fdc909837 “People just use Kotlin without understanding

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 - ну тут вообще сложно что-то сказать, так как без примера особо не понятно с чем сравнение.

10 ответов

10 просмотров

1) это просто некрасиво 2) ну тут спорно, поинт автора не в производительности заключается, а в манкипатчинге, которого гет 3) так и есть, не нужные объекты на лямбды 4) сиквенсы это компиляторная магия (точнее суспенды - магия, а сиквенсы просто на них построены), потому что там можно делать val sequence = sequence { yield(computation()) yield(computation2() } и потом sequence.take(1) вернёт первый computation без выполнения computation2 (лямбда выполнится не до конца, а после следующего take(1) закончит выполнение)

Gor- Автор вопроса
Aλex Sokol
1) это просто некрасиво 2) ну тут спорно, поинт а...

В каком месте лет не красивый? Делать отдельную переменную под something.thing для работы с ней красивше?

Gor
В каком месте лет не красивый? Делать отдельную п...

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

Gor- Автор вопроса
Aλex Sokol
уже много раз поднимали этот вопрос, и я в начале ...

Вообще, красивее это явно не аргумент спора, это как минимум вкусовщина, я же говорю что инлайн убирает оверхед, тогда особо проблем с летом не остается

Gor
Вообще, красивее это явно не аргумент спора, это к...

invokedynamic на лямбду тоже убирает оверхед, но мне кажется, что претензия к let в том, что его неправильно используют и делают говнокод

Iaroslav Postovalov
Ты где в котлине indy нашел?

Кроме как в конкатенации строк

Aλex Sokol
а, я дурак значит :)

Не, issue и правда есть

Iaroslav Postovalov
Кроме как в конкатенации строк

Ещё для fun interface в 1.5 есть вроде

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта