Добрый день,в функции у меня имеется плеер который воспроизводит аудио файл,но почему то код не дожидается окончания(думаю потому что он запусткается в другом потоке) плеера и продолжает работу.И в самом конце функции когда я вызываю плеер,он ваще не успевает воспроизвестись.Возможно ли решить проблему с помощью курутин?
Нужно проитерировать с индексами i, j по одномерному массиву, так что на каждой итерации был доступ к 2 элементам и их индексам. В scala можно val list = List(1, 2, 3) val pairs = for { x <- list y <- list if x != y } yield(x, y) хз, сколько доп структур в scala аллоцируется, но это удобно и дальше итерировать по этим парам. В java можно проитерировать for с индексами i, j. Я хз, как в kotlin
Вопрос по MutableStateFlow. Есть ли разница между этими двумя способами отправки нового значения в MutableStateFlow: 1. flow.value = newData 2. flow.tryEmit(newData) А то я все время почему-то пользовался первым вариантом и проблем не было. Про существование emit и tryEmit для hot flows вообще забыл. Поэтому интересно, есть ли смысл все строки с первым вариантом переписать под второй?
Не совсеем верно написал. Конкретно для StateFlow tryEmit сделает .value и вернет true без саспенда, для SharedFlow, сначала попробует без саспенда, потом с саспендом (а .value на SharedFlowах нет). Как-то так.
Спасибо за ссылку на исходники. Про suspend и non-suspend я знал, была интересна лишь разница между non-suspend функцией tryEmit и свойством value. Я в андроид студии не заметил, что она меня перенаправляла на tryEmit от SharedFlow, где нет реализации, а просто объявление. Теперь все понятно, спасибо еще раз.