Size: a a a

Kotlin Community

2020 December 03

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Стоит, я на эти грабли наступил один раз довольно больно. Исключения для исключительных ситуаций, не для передачи результата
хм, но тогда будет такой код

fun getUser(token: String, userId: Int?): ... {
   val tokenModel = TokensApi.getToken(token)
 
   if(tokenModel is Error)
       return tokenModel

   val realUserId = userId ?: tokenModel.ownerId
}
источник

с#

саша сок #KotlinGang... in Kotlin Community
и так везде не очень удобно будет делать
источник

с#

саша сок #KotlinGang... in Kotlin Community
вместо просто
val realUserId = userId ?: TokensApi.getToken(token)
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Nozik
Стоит, я на эти грабли наступил один раз довольно больно. Исключения для исключительных ситуаций, не для передачи результата
мне просто правда интересно, какое решение Вы можете предложить, если можете.
источник

AN

Alexander Nozik in Kotlin Community
саша сок #KotlinGang
мне просто правда интересно, какое решение Вы можете предложить, если можете.
Я не понял в чем вопрос? Если вопрос как передавать несколько вариантов результата из функции, то силед классами/either
источник

PS

Pavel Shilyagov in Kotlin Community
саша сок #KotlinGang
мне просто правда интересно, какое решение Вы можете предложить, если можете.
Если не надо передавать что именно за ошибка произошла, то optional подходит. Если нужна информация об ошибке, то вариация sealed (result, either или любой кастомный тип).
Для исключительных ситуаций всегда лучше кидать эксепшн. Но "не найденный пользователь" это ожидаемая ситуация
источник
2020 December 04

`

` in Kotlin Community
а во флоу разве нельзя заемитить эксепшн? Только оборачивать в result / error?
источник

M

Malik in Kotlin Community
Каждый раз, когда функция может не вернуть результат думаю использовать nullable тип или обернуть в Optional. С Optional красивее, но выглядит как бесполезная обертка. В Java еще можно найти оправдание его использованию, так как там нет разделения на nullable и non-nullable, а вот зачем мне Optional в Kotlin я так и не понял.
источник

BV

Boris Vanin in Kotlin Community
Malik
Каждый раз, когда функция может не вернуть результат думаю использовать nullable тип или обернуть в Optional. С Optional красивее, но выглядит как бесполезная обертка. В Java еще можно найти оправдание его использованию, так как там нет разделения на nullable и non-nullable, а вот зачем мне Optional в Kotlin я так и не понял.
Так его там и нету 🤷‍♂
источник

M

Malik in Kotlin Community
Boris Vanin
Так его там и нету 🤷‍♂
Знаю, но в проектах часто свои Optional добавляют. Во всех, где я работал, они были. И самому иногда хочется его добавить, когда нет, но никакого профита, кроме красоты, я не вижу.
источник

BV

Boris Vanin in Kotlin Community
Malik
Знаю, но в проектах часто свои Optional добавляют. Во всех, где я работал, они были. И самому иногда хочется его добавить, когда нет, но никакого профита, кроме красоты, я не вижу.
А в чем красота?
источник

AL

Alexander Levin in Kotlin Community
Malik
Знаю, но в проектах часто свои Optional добавляют. Во всех, где я работал, они были. И самому иногда хочется его добавить, когда нет, но никакого профита, кроме красоты, я не вижу.
В Котлин проектах такого не встречал. Да и своих Optional тоже. Either - да, Optional - вроде нет.
источник

M

Malik in Kotlin Community
Boris Vanin
А в чем красота?
Это конечно субъективно, но мне не нравится наличие вопросиков в коде.
источник

BV

Boris Vanin in Kotlin Community
Тут уже это много раз обсуждали, есть пара кейзов, которые на наллбл не сделаешь, но ради этого вводить обертку такое
источник

AL

Alexander Levin in Kotlin Community
Malik
Это конечно субъективно, но мне не нравится наличие вопросиков в коде.
Чем вопросик принципиально отличается от map/flatMap? :)
источник

BV

Boris Vanin in Kotlin Community
А в смысле красоты вообще разницы нет
источник

M

Malik in Kotlin Community
Boris Vanin
Тут уже это много раз обсуждали, есть пара кейзов, которые на наллбл не сделаешь, но ради этого вводить обертку такое
Наверно речь про Single/Observable/…
источник

BV

Boris Vanin in Kotlin Community
Можно даже сделать те же самые методы если очень хочется, но к котлине есть твой подход
источник

BV

Boris Vanin in Kotlin Community
Malik
Наверно речь про Single/Observable/…
Про опшнл
источник

BV

Boris Vanin in Kotlin Community
Malik
Это конечно субъективно, но мне не нравится наличие вопросиков в коде.
Тогда возможно котлин это не ваше, в нем много вопросиков
источник