Kotlin传递函数作为参数的方式

Kotlin传递函数作为参数,可以有:命名参数,位置参数以及在参数列表外,以lamba的形式传递。

示例

data class Person(val name: String,
                  val age: Int = 0,
                  val showMsg : (msg: String) -> Unit)

命名参数

val p = Person(name="张三", age=18, showMsg = ::println)

位置参数

val p = Person("张三", 18, {msg -> println(msg)})

在参数列表外

val p = Person(name = "张三", age = 18) { println(it) }

如果函数是作为最后一个参数,才可以在以lambda表达式的方式在参数列表外传递。

注意:命名参数和位置参数是不能混在一起使用。

版权声明:著作权归作者所有。

相关推荐

Vue路由传递获取参数

通过Vue传递参数可以分为两种方式:params参数query参数params参数params参数传递方式分两种:路由配置参数使用$router的push编程式添加路由配置参数在路由中配置如下:{   path: '/user/:id',   name: 'user',   component: UserDe

Kotlin集合扩展函数 - 转换

Kotlin 集合类型提供了很多用于转换的扩展函数。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) associate关联函数:使用转换函数把Array或Iterable转换为Map:数组fun <T, K, V> any_array

Kotlin集合扩展函数 - 创建集合

Kotlin标准包提供了一系列的扩展函数用来创建集合,包括Array,List,Set,Map以及可变集合。这里需要指出示例里的intList为val intList: List<I­nt> = listOf(1, 2, 3) Array创建数组基本方式val intArray: Array<­Int

Python 函数内修改关键字参数**kw的安全性考虑

Python定义函数常常会使用关键字参数**kw来接收字典值。基本语法def f(p1,p2,**kw) **kw将接收0个或任意个含参数名的参数,这些关键字参数在函数内部会自动组合为一个字典。示例def person(**kw)     for k in kw:    &nbs