169 похожих чатов

Господа подскажите пожалуйста, я во вьюмодели получаю переданный через навигейшнкомпонентс

Int:
var categoryChosen = state.get<Int>("categoryChosen")
... И он имеет тип "Int?"
А во вью мне нужно подставить Int без вопроса, и
viewModel.onChooseCategoryClick(viewModel.categoryChosen)
как это сделать и избежать type mismatch?

9 ответов

4 просмотра

Не совсем понял логики категорий тут, но если речь просто о nullable-переменной, то добавьте проверку перед вызовом с помощью let или if

toInt

Нужно добавить логику на случай, если этот Int является null. Например дефолт значение. Либо если null то не вызываем функцию. Тут в котлине есть разные варианты. Для дефолт значения например лаконично через элвис - categoryChosen ?: defValue Либо вместо defValue сразу хардкод значение, 0 например.

Lessej- Автор вопроса

вот так можно же? viewModel.onChooseCategoryClick(viewModel.categoryChosen!!)

Могу ошибаться, но вроде таким образом ты закрываешь котлину глаза на nullable переменную. И если в рантайме там вдруг когда-то выпадет null, то выпадет NPE

Так не надо делать точно

Ну да в инете проверил, так и есть. Поэтому так себе решение)

Что мешает завести экстеншн emptyString и проинициализировать переменную на старте

Это не string) Ну варианты разные, как удобно. Может этот метод и вызывать не надо если значения нет. Зависит от контекста

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта