return в композабл функциях а когда нет? Я подозреваю что Start/end imbalance можно избежать если делать return НЕ в лямбде вложенной функции или делать return@<что-нибудь>. Я прав?
это описывается в гайдлайнах, если композ функция возвращает Unit (ничего не возвращает грубо говоря), она эмитит контент какой-то, то там не должно быть return-а, а если она например remember-ит что-то то должна
хм я говорю не про возвращение значения, я говорю про ранний выход
Из функций ничего не нужно возвращать. Они потом все перемалываются в хеш из которого строится интерфейс
Спасибо КО. Я знаю как и что делают композ функции. Меня интересует возможность раннего выхода из функции а не какой-то её результат (ну помимо нарисованного интерфейса). Я хочу избавиться по возможности от лишних уровней вложенности If-ов (и от цикломатической сложности заодно)
Ну семантически состояние же только должно решать что отображать а что нет
Э... ну и при чём тут это? Условие в if вполне себе приходит из состояния...
Ну да но вы потом вместо того чтобы else блок обработать выходите из функции
Я не понимаю о чём вы. "выход" из функции это и есть "else" блок - т.е. если условие не выполняется - ничего не рисуем.
А зачем Вам тут implicit return если можно и без него обойтись если я правильно понимаю?
Куда-то ушла беседа не туда... я спрашивал в чём разница между: @Composable fun MyComponent() { if (myState.value) { /* Рисуем */ } // не рисуем, "implicit return" в том смысле что он не написан но он есть } и @Composable fun MyComponent() { if (!myState.value) return // не рисуем и return явный /* Рисуем */ }
Там вроде ошибка в релизной сборке бросалась индекс вне границ массива
Ну да я видел этот стековерфлоу. Только мне всё равно непонятно почему вдруг?
Наверное композер и компилятор ещё не самые умные чтобы обработать это, хз
Обсуждают сегодня