Size: a a a

Kotlin Community

2020 September 12

AZ

Alexander Zalutskiy in Kotlin Community
Паша Финкельштейн
там всё ещё возможны странные гонки типа "добавили лиснера, а сообщение в него прилететь не успело"
Как и с циклом
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Alexander Zalutskiy
Как и с циклом
конечно
источник

ДА

Джамал Алиев... in Kotlin Community
Alexander Nozik
А можно взять StateFlow. Там уже и поля и подписки, но с оверхедом
Я думал можно, что-то подобное сделать с делегатами
источник

AZ

Alexander Zalutskiy in Kotlin Community
Alexander Nozik
Диспатчить события от разных полей разных типов по одной подписке
А. Ну такое да
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Alexander Nozik
Диспатчить события от разных полей разных типов по одной подписке
пускай подписчик сам решаем надо ему или нет, м?
источник

AN

Alexander Nozik in Kotlin Community
Джамал Алиев
Я думал можно, что-то подобное сделать с делегатами
Можно, но надо писать под вашу задачу. Кроме того, получить досуп к делегату поля - это не совсем тривиальный ход.
источник

AZ

Alexander Zalutskiy in Kotlin Community
Вообще тут бы захватывать память и cow оптимизацию на коллекциях
источник

ПФ

Паша Финкельштейн... in Kotlin Community
Alexander Nozik
Можно, но надо писать под вашу задачу. Кроме того, получить досуп к делегату поля - это не совсем тривиальный ход.
вообще нехитрый, если делать не by delegate, а = delegate :)
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Можно, но надо писать под вашу задачу. Кроме того, получить досуп к делегату поля - это не совсем тривиальный ход.
ну почему же, тот же map

val map = ...

val name by map
источник

AN

Alexander Nozik in Kotlin Community
Паша Финкельштейн
пускай подписчик сам решаем надо ему или нет, м?
Ну короче, мне уже пора ребенка укладывать, но так как я как раз эту штуку реализовал, могу с уверенностью сказать, что да, все можно. Но это некоторая работа.
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
ну почему же, тот же map

val map = ...

val name by map
Здесь нет доступа к делегату пост-фактум
источник

с#

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

class Test {
   var stringHandler: (String) -> Unit = {}
   var string by observable {
       stringHandler(it)
   }
}
источник

AZ

Alexander Zalutskiy in Kotlin Community
саша сок #KotlinGang
а вообще

class Test {
   var stringHandler: (String) -> Unit = {}
   var string by observable {
       stringHandler(it)
   }
}
Ну. Такой себе вариант, который в будущем скорее всего привнесёт проблемы)
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Zalutskiy
Ну. Такой себе вариант, который в будущем скорее всего привнесёт проблемы)
какая разница, выносить делегат или лямбду ?
источник

AN

Alexander Nozik in Kotlin Community
Короче можете посмотреть делегаты в plotly.kt и даже воспользоваться либой, в которой они написаны, но я подозреваю, что оверкил.
источник

AZ

Alexander Zalutskiy in Kotlin Community
саша сок #KotlinGang
какая разница, выносить делегат или лямбду ?
Нужен не делегат, а список подписчиков. А то очень уж не безопасно получается. Кто угодно может кого угодно отписать в любой момент
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Zalutskiy
Нужен не делегат, а список подписчиков. А то очень уж не безопасно получается. Кто угодно может кого угодно отписать в любой момент
ну да, зависит от цели, вполне вероятно, что подписчик только один
источник

AZ

Alexander Zalutskiy in Kotlin Community
саша сок #KotlinGang
ну да, зависит от цели, вполне вероятно, что подписчик только один
Даже если он сейчас один, то никто не гарантирует, что это не изменится
источник

с#

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

с#

саша сок #KotlinGang... in Kotlin Community
стандартный какой-нибудь
источник