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))
}

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...