Size: a a a

Kotlin Community

2020 November 23

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
но в целом тут лучше без 'идиом' всяких, как и сказали, написать пару строчек кода. выглядеть будет замечательно.
Идиома тут как раз не использовать run.
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Идиома тут как раз не использовать run.
поэтому в кавычки
источник

с#

саша сок #KotlinGang... in Kotlin Community
там в предыдущем сообщении о них было
источник

DV

Dmitriy Volkovskiy in Kotlin Community
сколько людей, столько и мнений. в одном я согласен: как команде удобно читать, так и пишите
источник

DV

Dmitriy Volkovskiy in Kotlin Community
Denys
Не суть, я о том, что в кодгольф играть в не стоит. Лучше писать так, чтобы было понятно читать. :)
это теория, покажите как надо )
источник

T

The The in Kotlin Community
Dmitriy Volkovskiy
if (resultCode == OK && result?.data?.data != null) put(result.data) else clear()
?
а чем это тогда отличается от этого
источник

AN

Alexander Nozik in Kotlin Community
The The
а чем это тогда отличается от этого
Ну не надо так делать
источник

T

The The in Kotlin Community
мне вот не нравится необходимость указывать !!, вот где читаемость падает
источник

T

The The in Kotlin Community
Alexander Nozik
Ну не надо так делать
почему?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Dmitriy Volkovskiy
сколько людей, столько и мнений. в одном я согласен: как команде удобно читать, так и пишите
это не совсем так работает, я вот переписываю свой код иногда со скоуп функций на ифы и значительно повышается читаемость. это общее наблюдение многих людей, а не личное мнение.
источник

T

The The in Kotlin Community
опять же !!, хотя все проверки были
источник

с#

саша сок #KotlinGang... in Kotlin Community
The The
опять же !!, хотя все проверки были
а вот представьте, что у вас многопоточность. а это из джавы и котлин не знает что там.

if(a != null) // true
   a.action()  // а другой поток уже поставил нулл, и вы что, хотите NPE ?
источник

DV

Dmitriy Volkovskiy in Kotlin Community
проверки были, но после if другой поток "мог поменять" result.data. я бы переписал с помощью let -> run. но тут я в меньшинстве
источник

AN

Alexander Nozik in Kotlin Community
The The
почему?
Потому что следующий, кто придет за вами писать этот проект пойдет бить вам лицо

Хотя... вот конкретно этот вариант не так плох. Читается нормально. Но можно и вложенный иф сделать, ни у кого ничего не отвалится
источник

AN

Alexander Nozik in Kotlin Community
Dmitriy Volkovskiy
проверки были, но после if другой поток "мог поменять" result.data. я бы переписал с помощью let -> run. но тут я в меньшинстве
Там не в потоках дело, а в том, что смарт каст не такой умный.
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Там не в потоках дело, а в том, что смарт каст не такой умный.
а как смарт касту работать с джавовыми не-финальными переменными ещё
источник

T

The The in Kotlin Community
вот из-за того что вариантов дохренища хочется как-то красиво написать, в итоге возвращается к тем же ифам(
источник

u

ultra + noise in Kotlin Community
The The
такую запись можно сократить лаконичней? в идеале чтобы не было двух упоминаний одной функции. в котлине столько этих идиом что я путаюсь в них
result
   .let {it.resultCode == Activity.RESULT_OK}
   ?.let {it.data}
   ?.run {putAdditionalFolderToPreference(it.data, flags)}
   ?: clearAdditionalFolderPreference()
источник

с#

саша сок #KotlinGang... in Kotlin Community
The The
вот из-за того что вариантов дохренища хочется как-то красиво написать, в итоге возвращается к тем же ифам(
ифы красивые, я понимаю, может вы хотите какой-то отдельный котлинвей, но тут он бессмысслен
источник

с#

саша сок #KotlinGang... in Kotlin Community
ultra + noise
result
   .let {it.resultCode == Activity.RESULT_OK}
   ?.let {it.data}
   ?.run {putAdditionalFolderToPreference(it.data, flags)}
   ?: clearAdditionalFolderPreference()
спасибо красота 😊
источник