kotlin匿名函数
2022-10-31 本文已影响0人
Bfmall
匿名函数学习笔记###
/**
* DESC : kotlin中的匿名函数
*/
class KtBaseFunTest02 {
companion object {
const val TAG = "KtBaseFunTest02"
}
/**
* 隐式函数
*/
fun testNestFun01() {
val length1 = "lanny".count()
val length2 = "lanny".count {
Log.d(TAG, "it="+it)//此时,it相当于 l a n n y 中的每一个字符
it == 'y'
}
Log.d(TAG, "测试匿名函数:length1="+length1+", length2="+length2)
}
/**
* 函数类型&隐式返回学习
*/
fun testNestFun02() {
//第一步:函数输入输出的声明
/**
* 函数变量 函数名 参数(无参) 返回值
* val methodAction : () -> String
*/
val methodAction : () -> String
//第二步:对上面函数的实现
methodAction = {
val age = 1
"年龄age=${age}" // == 背后隐式 return "年龄age=${age}";
//隐式函数不需要写return, 最后一行就是返回值,
}
//methodAction是方法名,调用方法methodAction()
Log.d(TAG, "testNestFun02==>methodAction="+methodAction())
}
/**
* 隐式函数参数学习
*/
fun testNestFun03() {
/**
* 第一步:函数的输入输出的声明
* 第二步:对声明函数的实现
*/
val methodAction2 : (String ,Int) -> String = { name, age ->
"结果name="+name+",age="+age
}
//第三步调用methodAction函数并传参
Log.d(TAG, "testNestFun03==>methodAction=" + methodAction2("elle", 11))
//相当于如下:
/*fun methodAction2(name:String ,age : Int) : String {
return "结果name="+name+",age="+age
}*/
}
/**
* kotlin中 it 关键字
*/
fun testNestFun04() {
/**
* 第一步:函数的输入输出的声明
* 第二步:对声明函数的实现
*/
val methodAction: (String) -> String = {
"结果: $it "//it == 参数
}
Log.d(TAG, "testNestFun04==>"+methodAction("lananna"))
}
/**
* 匿名函数的返回值类型判断
*/
fun testNestFun05() {
val methodAction = { name:String, age : Int ->
"结果name="+name+", age="+age
//最后一行是返回类型
}
Log.d(TAG, "testNestFun05==>"+methodAction("hahha", 88))
//methodAction2 : () -> Unit
val methodAction2 = {
"hahahahha"
}
Log.d(TAG, "testNestFun05==>"+methodAction2())
//返回类型为Int
val methodAction3= { age:Int ->
age
//最后一行是返回类型
}
Log.d(TAG, "testNestFun05==>"+methodAction3(99))
}
/**
* 匿名函数== lambda表达式(匿名函数 属于 lambda)
*/
fun testNestFun06() {
val methodAction = { name: String, age: Int ->
"结果name=" + name + ", age=" + age
//最后一行是返回类型
}
Log.d(TAG, "testNestFun05==>" + methodAction("hahha", 88))
}
}