Alexjok
04/02/2019, 10:31 AMfun main(args: Array<String>) {
val intList = mutableListOf(1,2,5)
test(intList)
}
fun test(objectIds: MutableList<Int>?) {
when (objectIds.isNullOrEmpty()) {
true ->{
println("true")
}
false -> {
val maxObjectId = objectIds.max()!!.let {
objectIds.remove(it)
return@let it.toLong()
}
println(maxObjectId)
}
}
}
В блоке when метода test() происходит проверка на null и по идее когда мы попадаем в false
нам известно:
1) лист не пустой
2) метод max() должен, что-то вернуть.
Но IDE настойчиво требует поставить !!, почему так происходит и есть ли способ
избавиться от восклицательных знаков?gildor
04/02/2019, 10:37 AMgildor
04/02/2019, 10:37 AMgildor
04/02/2019, 10:38 AMgildor
04/02/2019, 10:39 AMgildor
04/02/2019, 10:39 AMfun test(objectIds: MutableList<Int>?) {
val max = objectIds?.max()
if (max == null) {
println("true")
} else {
objectIds.remove(max)
println(max)
}
}
Alexjok
04/02/2019, 11:29 AMAlexjok
04/02/2019, 11:34 AMgildor
04/02/2019, 1:51 PMNonEmptyList<Int>.max(): Int
, тогда такой код будет работатьgildor
04/02/2019, 1:52 PMAlexjok
04/02/2019, 2:36 PM