android – kotlin lambda表达式作为可选参数

前端之家收集整理的这篇文章主要介绍了android – kotlin lambda表达式作为可选参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何将lambda表达式作为Kotlin语言中的可选参数传递
val max = { a: Int,b: Int ->
  if (a > b)
      a
  else
      b
}

我必须传递上面的东西就像可选参数

解决方法

下面定义了一个接受函数函数,如果没有提供函数,则指定传递函数的默认值.
fun foobar(fn: (a: Int,b: Int) -> Int = { a: Int,b: Int -> if (a > b) a else b }) {
  println(fn(42,99))
}

您可以传递自己的功能

val min = { a: Int,b: Int -> if (a <= b) a else b }
foobar(min)

val max = { a: Int,b: Int -> if (a > b) a else b }
foobar(max)

您可以省略该功能并使用默认值:

foobar()

或者,您可以将标准库maxOf函数作为默认值,而不是编写自己的函数

fun foobar(fn: (a: Int,b: Int) -> Int = ::maxOf) {
  println(fn(42,99))
}

猜你在找的Android相关文章