Давайте представим, у вас есть 2 fonctions возвращения обнуляемым и вы не можете составить эти 2 функции:Как составить nullables в Котлин
fun giveInt(x: Int):Int? = x+1
fun giveInt2(x: Int):Int? = x+2
Для достижения композиции, я написал эту функции:
fun all(x:Int):Int? {
val y = giveInt(x)
if (y != null) return giveInt2(y) else return null;
}
val four = all(1)
Можно ли составить 2 значения с нулевым значением, чтобы получить еще одну допустимую величину без явной записи if (y != null)
и return null
?
В Scala, я бы просто сделать что-то вроде:
def giveInt(x: Int):Option[Int] = Some(x+1)
def giveInt2(x: Int):Option[Int] = Some(x+2)
def all(x:Int): Option[Int] = giveInt(x).flatMap(giveInt2)
Должен ли я использовать Java факультативный для достижения этой цели, или это возможно с ?
оператора?
Спасибо :)
Это сильно охватываемой: http://stackoverflow.com/questions/34498562/in-kotlin-what-is-the-idiomatic-way-to-deal-with-nullable-values-referencing-o –