Size: a a a

2020 March 04

VS

Vladimir Sitnikov in Kotlin Moscow
А есть какой-нибудь идеоматичный вариант для сравнения строк, когда пустая строка и null считались бы одинаковыми?

Я написал так (it.classifier ?: "") == (new.classifier ?: ""), но сдаётся мне есть более человечный вариант.
если что, то у it и у new классы вообще разные. Но classifier в обоих случаях это @Nullable String
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
А есть какой-нибудь идеоматичный вариант для сравнения строк, когда пустая строка и null считались бы одинаковыми?

Я написал так (it.classifier ?: "") == (new.classifier ?: ""), но сдаётся мне есть более человечный вариант.
если что, то у it и у new классы вообще разные. Но classifier в обоих случаях это @Nullable String
нормально и так по-моему.
источник

VS

Vladimir Sitnikov in Kotlin Moscow
о, после какого-то подхода нашёл, что оказывается есть it.classifier.orEmpty() == new.classifier.orEmpty()
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
о, после какого-то подхода нашёл, что оказывается есть it.classifier.orEmpty() == new.classifier.orEmpty()
Так это ровно то же самое, причем не факт, что выглядит лучше
источник

VS

Vladimir Sitnikov in Kotlin Moscow
Alexander Nozik
Так это ровно то же самое, причем не факт, что выглядит лучше
Я ж понимаю что разница только визуальная.
Но как бы вся суть Котлина как раз в визуальности :-)

Если записывать без скобок it.classifier ?: "" == new.classifier ?: "", то несколько теряется «где тут операция»

В варианте с orEmpty сразу видно, что речь про A == B, т.к. нет пробелов внутри A и нет пробелов внутри B
источник

AN

Alexander Nozik in Kotlin Moscow
Vladimir Sitnikov
Я ж понимаю что разница только визуальная.
Но как бы вся суть Котлина как раз в визуальности :-)

Если записывать без скобок it.classifier ?: "" == new.classifier ?: "", то несколько теряется «где тут операция»

В варианте с orEmpty сразу видно, что речь про A == B, т.к. нет пробелов внутри A и нет пробелов внутри B
Если это один раз, то все равно. Если раз много, то суть котлина, написать функцию на String?
источник

VS

Vladimir Sitnikov in Kotlin Moscow
orEmpty это стандартная функция. Уже написана. Я понимаю, что можно и свою написать. Но подозревал, что уже должна быть
источник
2020 March 05

EM

Evgeny Mashkantsev in Kotlin Moscow
Есть функция isNullOrEmpty
источник

И

Илья in Kotlin Moscow
Evgeny Mashkantsev
Есть функция isNullOrEmpty
Такая точно есть в шарпах
источник

AN

Alexander Nozik in Kotlin Moscow
Но оно не по делу, поскольку не решает проблему сравнения.
источник

SM

Sergey Morgunov in Kotlin Moscow
Я тоже не понял, чем она могла помочь в данном случае 🙂
источник

EM

Evgeny Mashkantsev in Kotlin Moscow
А если так?
(A.isNullOrEmpty() && B.isNullOrEmpty()) || (A == B)
источник

SB

Sergey Barmin in Kotlin Moscow
А зачем так сложно?)
источник

EM

Evgeny Mashkantsev in Kotlin Moscow
Разве это сложно?)
источник

MD

Maxim Davydov in Kotlin Moscow
Evgeny Mashkantsev
Разве это сложно?)
Явно менее читаемо, чем первый вариант
источник

EM

Evgeny Mashkantsev in Kotlin Moscow
(A ?: "") == (B ?: "")
По мне так самый идиоматичный вариант.
Ну да, это практически то же самое, что первый вариант, но всё же😅
источник

MD

Maxim Davydov in Kotlin Moscow
Evgeny Mashkantsev
(A ?: "") == (B ?: "")
По мне так самый идиоматичный вариант.
Ну да, это практически то же самое, что первый вариант, но всё же😅
Не практически, а ровно то же самое)
источник
2020 March 09

AL

Alexander Larin in Kotlin Moscow
Подскажите, пожалуйста, какую либу лучше взять для дергания всяких http api? использовать планирую на бэкенде в пет проекте. Вроде fuel в интернетах упоминается как фаворит в этом плане.
источник
2020 March 10

AN

Alexander Nozik in Kotlin Moscow
Alexander Larin
Подскажите, пожалуйста, какую либу лучше взять для дергания всяких http api? использовать планирую на бэкенде в пет проекте. Вроде fuel в интернетах упоминается как фаворит в этом плане.
Ktor client
источник

AN

Alexander Nozik in Kotlin Moscow
Если бэк, то ktor server
источник