Int:
var categoryChosen = state.get<Int>("categoryChosen")
... И он имеет тип "Int?"
А во вью мне нужно подставить Int без вопроса, и
viewModel.onChooseCategoryClick(viewModel.categoryChosen)
как это сделать и избежать type mismatch?
Не совсем понял логики категорий тут, но если речь просто о nullable-переменной, то добавьте проверку перед вызовом с помощью let или if
toInt
Нужно добавить логику на случай, если этот Int является null. Например дефолт значение. Либо если null то не вызываем функцию. Тут в котлине есть разные варианты. Для дефолт значения например лаконично через элвис - categoryChosen ?: defValue Либо вместо defValue сразу хардкод значение, 0 например.
вот так можно же? viewModel.onChooseCategoryClick(viewModel.categoryChosen!!)
Могу ошибаться, но вроде таким образом ты закрываешь котлину глаза на nullable переменную. И если в рантайме там вдруг когда-то выпадет null, то выпадет NPE
Так не надо делать точно
Ну да в инете проверил, так и есть. Поэтому так себе решение)
Что мешает завести экстеншн emptyString и проинициализировать переменную на старте
Это не string) Ну варианты разные, как удобно. Может этот метод и вызывать не надо если значения нет. Зависит от контекста
Обсуждают сегодня