Size: a a a

Kotlin Community

2019 November 26

DA

Denis Aleksandrov in Kotlin Community
Kopusha
Почему корутины не крашат приложение, даже на Main диспатчере? Всегда ставил IO context для корутин которые ходят в сеть, но, видимо, оно как-то и без этого работает. Внутри suspend функции честно показывает, что это main thread, но тем не менее никаких ошибок. Что там происходит?
выщываемык Suspend функции могут внутри себя сами определять, в каком месте им выполняться
источник

K

Kopusha in Kotlin Community
да, спасибо, так и есть, нашёл исходники.
источник

e

expert in Kotlin Community
Добрый день. Скажите пожалуйста, а как в котлине обратиться к функции внешнего класса из метода внутреннего? Пример

interface ByteArrayMarshaller<T> {
   fun encode(value: T): ByteArray
   fun decode(value: ByteArray): T

   fun <V>bimap(tv: (T) -> V, vt: (V) -> T): ByteArrayMarshaller<V> = object : ByteArrayMarshaller<V> {
       override fun encode(value: V): ByteArray {
           return encode(vt(value))
       }

       override fun decode(value: ByteArray): V {
           return tv(decode(value))
       }
   }
}


В этом примере я не могу вызывать внешний decode. Я могу сделать временную переменную конечно, но может есть идеоматический путь?

Спасибо.
источник

VP

Vladimir Petrakovich in Kotlin Community
expert
Добрый день. Скажите пожалуйста, а как в котлине обратиться к функции внешнего класса из метода внутреннего? Пример

interface ByteArrayMarshaller<T> {
   fun encode(value: T): ByteArray
   fun decode(value: ByteArray): T

   fun <V>bimap(tv: (T) -> V, vt: (V) -> T): ByteArrayMarshaller<V> = object : ByteArrayMarshaller<V> {
       override fun encode(value: V): ByteArray {
           return encode(vt(value))
       }

       override fun decode(value: ByteArray): V {
           return tv(decode(value))
       }
   }
}


В этом примере я не могу вызывать внешний decode. Я могу сделать временную переменную конечно, но может есть идеоматический путь?

Спасибо.
this@ByteArrayMarshaller или что-то близкое к этому
источник

e

expert in Kotlin Community
Vladimir Petrakovich
this@ByteArrayMarshaller или что-то близкое к этому
Помогло, спасибо.
источник

VM

Vadim Morozov in Kotlin Community
Есть методы для сортировки
отличаются только одним параметром а именно параметром в data classe
хотелось бы оптимизировать
тут можно как то вынести сортировку по priority?

    fun getTargetsByPriority() {
       val valueEventListener = object : ValueEventListener {
           override fun onDataChange(dataSnapshot: DataSnapshot) {
               targetList.clear()
               dataSnapshot.children
                   .mapNotNull { it.getValue(Goal::class.java) }
                   .sortedBy { it.priority }
                   .toCollection(targetList)
               contract.updateViewContent()
           }

           override fun onCancelled(databaseError: DatabaseError) {
               Log.d("some", "Error trying to get targets for ${databaseError.message}")
           }
       }
       targetsRef?.addListenerForSingleValueEvent(valueEventListener)
   }
источник

VM

Vadim Morozov in Kotlin Community
вынести Goal в параметр для сортировки может?
источник

LS

Lev Shagalov in Kotlin Community
А к чему https://github.com/Kotlin/kotlinx.collections.immutable , тот же List вроде бы иммутабельный
источник

VP

Vladimir Petrakovich in Kotlin Community
Он не иммутабельный, а read-only
источник

КР

Кирилл Романенко in Kotlin Community
Список немутабельный, а объекты внутри могут мутироваться.
источник

SB

Sergey Barmin in Kotlin Community
вроде не пятница, а мы снова про немутабельность List'а )
источник

LS

Lev Shagalov in Kotlin Community
Кирилл Романенко
Список немутабельный, а объекты внутри могут мутироваться.
А с этой либой и объекты будут иммутабельны?
источник

SB

Sergey Barmin in Kotlin Community
listOf() as MutableList делает его вполне мутабельным, так что он просто read-only, т.к под капотом у обоих один и тот же ArrayList, если кратко
источник

RI

Ruslan Ibragimov in Kotlin Community
источник

IK

Igor Komarov in Kotlin Community
Может быть есть у кого-то реализации Pool<A> с возможностью фильтрации A по заданным критериям?
источник

RI

Ruslan Ibragimov in Kotlin Community
Надеюсь это какой-нибудь крутой UI фреймворк, можно даже за деньги)
источник

BV

Boris Vanin in Kotlin Community
Ruslan Ibragimov
Надеюсь это какой-нибудь крутой UI фреймворк, можно даже за деньги)
Ui какого рода?
источник

RI

Ruslan Ibragimov in Kotlin Community
Мультиплатформенного например)
Хотя скорее всего будет какой-то тул для командной работы
источник

М

Михаил in Kotlin Community
IDE для sap
источник

LS

Lev Shagalov in Kotlin Community
Sergey Barmin
listOf() as MutableList делает его вполне мутабельным, так что он просто read-only, т.к под капотом у обоих один и тот же ArrayList, если кратко
Спсб большое
источник