package com.init.demo.test fun main(args: Array<String>) { /** * lambda 全程lambda表达式 没有函数名的函数 即匿名函数 * 即函数中的函数(内部函数),基于数学中的λ演算得名 * 也可以乘称作闭包 是指这个匿名函数内可以引用创建 * 这个匿名函数所属的变量 * 写法:{参数1,参数2,...参数n -> //执行语句} */ println(add(1,3)) println("add()改写成lambda表达式为: var add = {x:Int,y:Int ->x+y}") var add = {x:Int,y:Int ->x+y} /** * 从而把函数变成了一个变量,这个变量的类型称作函数类型 * lambda表达式中不允许出现return */ println(add) //methodLambda使用方法 var methodLambda = comboTwoValue(1,3,add) println(methodLambda) /** * comboTwoValue1()函数体现了没有了以前的add函数名,变量名也没了 */ var methodLambda1 = comboTwoValue1(1,{x:Int,y:Int ->x+y},3) println(methodLambda1) } fun add(x:Int,y:Int):Int{ return x+y } /** * 用来组合两个整数,得出一个结果 * 计算两个整数的步骤,交给第三个函数参数类型去解决 * method:(a:Int,b:Int)->Int是一个函数类型 * ->是一个函数类型定义 */ fun comboTwoValue(x:Int,y:Int,method:(a:Int,b:Int)->Int):Int{ return method(x,y) } fun comboTwoValue1(x:Int,method:(a:Int,b:Int)->Int,y:Int):Int{ return method(x,y) } //输出: 4 add()改写成lambda表达式为: var add = {x:Int,y:Int ->x+y} (kotlin.Int, kotlin.Int) -> kotlin.Int 4 4
Kotlin-Lambda 表达式
最新推荐文章于 2022-12-11 23:31:23 发布