Size: a a a

Kotlin Community

2020 February 24

AN

Alexander Nozik in Kotlin Community
Alexander Levin
Result строго завязан на исключения, да и он не раскрывает что именно он словил в типе.
А чего хочется, статически диспатчить исключения?
источник

AO

Alexey Otts in Kotlin Community
Ну е мае, где там ошибки? Какой мне толк от throwable?
источник

AT

Alexey Tkachenko in Kotlin Community
Alexey Otts
Ну е мае, где там ошибки? Какой мне толк от throwable?
+
источник

AO

Alexey Otts in Kotlin Community
Как мне сказать, что тут у меня может быть несколько вариантов успешных ответов не связывая их общим предком?
источник

LC

Lungu Cristian in Kotlin Community
Andrew Mikhaylov
Не та задача, которую вы спросили, но может, поможет.
https://t.me/kotlin_mobile/32574
Не знаете если нужно обращать внимание если в задаче у inputs стоит : (1≤n≤50)
источник

AM

Andrew Mikhaylov in Kotlin Community
Lungu Cristian
Не знаете если нужно обращать внимание если в задаче у inputs стоит : (1≤n≤50)
Проверять, правда ли прошло 1..50, не надо, приходит ровно то, что обещано по условию. Обращать внимание надо для того, чтобы выбрать алгоритм для сложных задач -- для 1..50 подойдёт хоть решение перебором, для намного бОльших чисел квадратичная сложность (к примеру, для каждого элемента ещё раз пробежаться по всем элементам) уже не подходит.
источник

NK

Nikita Krutko in Kotlin Community
Если у меня есть геттер, который может вернуть null и мне нужно выполнить find над результатом, который тоже может вернуть null, то как обрабатывать эти ситуации с null'ами?
Например что-то такое
smth.get(...)?.find { ... }?.let { ,,, }


Есть идея завернуть через let { ... }, например так
smth.get(...) ?. let{
   it.find { ... } ?. let { ... } ?: run { ... }
} ?: run { ... }

Но есть мб способы лучше?
источник

AN

Alexander Nozik in Kotlin Community
Nikita Krutko
Если у меня есть геттер, который может вернуть null и мне нужно выполнить find над результатом, который тоже может вернуть null, то как обрабатывать эти ситуации с null'ами?
Например что-то такое
smth.get(...)?.find { ... }?.let { ,,, }


Есть идея завернуть через let { ... }, например так
smth.get(...) ?. let{
   it.find { ... } ?. let { ... } ?: run { ... }
} ?: run { ... }

Но есть мб способы лучше?
Можно обычно в столбик сделать. Смарткасты после проверки от нулов спасут
источник

AL

Alexander Levin in Kotlin Community
Nikita Krutko
Если у меня есть геттер, который может вернуть null и мне нужно выполнить find над результатом, который тоже может вернуть null, то как обрабатывать эти ситуации с null'ами?
Например что-то такое
smth.get(...)?.find { ... }?.let { ,,, }


Есть идея завернуть через let { ... }, например так
smth.get(...) ?. let{
   it.find { ... } ?. let { ... } ?: run { ... }
} ?: run { ... }

Но есть мб способы лучше?
1. Написать частично в обычном стиле с переменными
2. Написать в столбик:

smth.get(...)
   ?.find { ... }
   ?.let { ... }

Но если у вас ещё и элвис, то я бы точно рекоммендовал чуть более явно всё-написать, а не городить одной цепочкой (но дело ваше, конечно же)
источник

k

kirill in Kotlin Community
Alexander Levin
1. Написать частично в обычном стиле с переменными
2. Написать в столбик:

smth.get(...)
   ?.find { ... }
   ?.let { ... }

Но если у вас ещё и элвис, то я бы точно рекоммендовал чуть более явно всё-написать, а не городить одной цепочкой (но дело ваше, конечно же)
А зач гет, если есть [].
источник

AL

Alexander Levin in Kotlin Community
kirill
А зач гет, если есть [].
Как изначально написали, так и вернул. Да и всякие такие мелочи идея наверное предложит заменить (если надо)
источник

D

Danil Yudov in Kotlin Community
есть несколько тупых вопросов по мультиплатформе. допустим, у меня есть библиотека без платформенных зависимостей. могу ли я, не перечисляя конкретные targets (jvm, js, mingw...), сделать так чтоб её можно было использовать на любой платформе? если да, как это указать грэдлу?
источник

NK

Nikita Krutko in Kotlin Community
Alexander Levin
1. Написать частично в обычном стиле с переменными
2. Написать в столбик:

smth.get(...)
   ?.find { ... }
   ?.let { ... }

Но если у вас ещё и элвис, то я бы точно рекоммендовал чуть более явно всё-написать, а не городить одной цепочкой (но дело ваше, конечно же)
Да, мне нужно обработать оба варианта с null
В столбик это и так понятно, я просто сократил тут за счёт того, что не описываю содержимое
Более явно, например?
источник

NK

Nikita Krutko in Kotlin Community
kirill
А зач гет, если есть [].
Потому что это метод моего класса, а не коллекции
источник

AL

Alexander Levin in Kotlin Community
Nikita Krutko
Да, мне нужно обработать оба варианта с null
В столбик это и так понятно, я просто сократил тут за счёт того, что не описываю содержимое
Более явно, например?
Более явно это if (something != null) doSomethingWithNonNullableSomething(something) else doSomethingElse()
источник

AL

Alexander Levin in Kotlin Community
очень грубо говоря, конечно
источник

k

kirill in Kotlin Community
Nikita Krutko
Потому что это метод моего класса, а не коллекции
Так переопредели метод и усе
источник

AL

Alexander Levin in Kotlin Community
Но идея - если цепочка становится тяжелой для прочтения - не бойтесь возвращаться к обычным проверкам
источник

k

kirill in Kotlin Community
Оператор*
источник

NK

Nikita Krutko in Kotlin Community
Alexander Levin
Но идея - если цепочка становится тяжелой для прочтения - не бойтесь возвращаться к обычным проверкам
Окей, просто котлин именно за то и нравится, что null-проверки выглядят очень приятно))
источник