Size: a a a

Kotlin Community

2020 February 27

BV

Boris Vanin in Kotlin Community
ну да, когда интересно рассказывают, то вообще не важно о чем, даже если это вообще не it
источник

LS

Lev Shagalov in Kotlin Community
Расскажите дураку что за контракты?
источник

D

Denys in Kotlin Community
Lev Shagalov
Расскажите дураку что за контракты?
Подсказки компилятору.
источник

AM

Andrew Mikhaylov in Kotlin Community
Lev Shagalov
Расскажите дураку что за контракты?
Возможность подсказать компилятору, где можно уточнить типы на основании значений каких-то выражений.
источник

LS

Lev Shagalov in Kotlin Community
У меня вот есть
items
.map{ вернет Pair<Int,String?> }
.also{
упадет, если найдет String?. Дальше идут только  Pair<Int,String>
}
.map { и тут мне приходится писать !! }

Контракты тут помогут?
источник

D

Denys in Kotlin Community
mapNotNull
источник

AM

Andrew Mikhaylov in Kotlin Community
С парами как есть не поможет, по идее.
источник

LS

Lev Shagalov in Kotlin Community
Denys
mapNotNull
Не, там Pair<Int, String?> я превращаю в Pair<Int, String>
источник

AM

Andrew Mikhaylov in Kotlin Community
А почему also?
источник

AM

Andrew Mikhaylov in Kotlin Community
Если можно map и вернуть пару без наллов
источник

LS

Lev Shagalov in Kotlin Community
Не, я хочу собрать все навалидные данные и упасть. Но сказать сразу обо всем что нашел, а не по одной спотыкаться
источник

LS

Lev Shagalov in Kotlin Community
Вполне вероятно что я просто готовлю не так... и писать надо по другому. Но в голову ничего не приходит
источник

D

Denys in Kotlin Community
Как вариант. 🙈
items.map {}
 .mapNotNull { if (it.second != null) it as Pair<Int, String> else null }
источник

D

Denys in Kotlin Community
Lev Shagalov
Не, я хочу собрать все навалидные данные и упасть. Но сказать сразу обо всем что нашел, а не по одной спотыкаться
val invalidData = items.filter { it.second == null }

require(invalidData.isEmpty())
источник

LS

Lev Shagalov in Kotlin Community
as не будет ли слишком медленный?...
источник

LS

Lev Shagalov in Kotlin Community
нету вещи типа.. unsafeCast?
источник
2020 February 28

D

Denys in Kotlin Community
Lev Shagalov
нету вещи типа.. unsafeCast?
as :)
источник

D

Denys in Kotlin Community
as? - safe cast
источник

D

Denys in Kotlin Community
Denys
val invalidData = items.filter { it.second == null }

require(invalidData.isEmpty())
Но вот это поближе к тому, что нужно.
источник

D

Denys in Kotlin Community
А какая задача на уровень выше?
источник