当前位置: 首页>后端>正文

kotlin学习笔记3匿名函数和具名函数

语言的简略写法学习

const val name =“xiaoming”
const val pas =“123456”
fun login(name:String, pas:String, responseResult:(String,Int)->Unit){
If(name==null||pas==null){
Toast(“用户名密码为空”)
responseResult(“faild”,201)
}else{
responseResult(“success”,200)
}
}
//简略写法调用
login(name,pas){str,code->
//code ==200登录成功

}
//正常调用
login(name,pas,{str,code->
//code ==200登录成功

})

内联函数

//内联函数,使用lambda作为参数才可以使用内联函数
//如果此函数不使用内联,调用的时候会生成多个对象完成lambda的调用,损耗性能,想当与c++ #define。宏定义 宏替换,会把代码替换到调用出,调用不用创建对象创建
//如果函数参数有lambda 尽量使用inline关键字,减少性能开支
fun inline login(name:String, pas:String, responseResult:(String,Int)->Unit){
If(name==null||pas==null){
Toast(“用户名密码为空”)
responseResult(“faild”,201)
  }else{
responseResult(“success”,200)
  }
}

语言的函数引用

 inline fun  login(name:String, pas:String,responseResult:(String,Int)->Unit){
If(name==null||pas==null){
Toast(“用户名密码为空”)
responseResult(“faild”,201)
  }else{
responseResult(“success”,200)
  }

fun mothod(mg:String,code:String){
“结果是${msa} ${code}"
}

//调用,传一个函数::把普通函数转成函数变量
login(“name”,”pass”,:: mothod)
//也可以这样

val  obj=::mothod
login(“name”,”pass”,:: obj)
}


函数类型作为返回类型

//返回boolean
fun Show(info:String):Boolean{
Tost(“我是show${info}”)

return true
}
//返回string
fun Show2(info:String):String{
Tost(“我是show${info}”)
Return “hello"
}

//返回一个匿名函数,匿名函数返回值是string
fun Show3(info:String):(String,Int)->String{
Tost(“我是show${info}”)
Return {name:String, age:Int->
  “我是匿名函数入参是(String,Int)返回String"
}

匿名函数和具名函数


Inline fun showUser(name:String,age:String,sex:Chat,showResule:(String)->Unirt){
Val  str=“名字${name}年龄${age}性别${sex}”
showResule(str)
}
//调用匿名函数
showUser(“lisi”,99,’男’){
Tost(“${it}”)
}
//具名函数,有具体的名字
funshowUser(resule:String,:: showUser())

Inline fun showUser(name:String,age:String,sex:Chat,showResule:(String)->Unirt){
Val  str=“名字${name}年龄${age}性别${sex}”
showResule(str)
}
//小节:java需要写一些接口来实现,相对复杂

https://www.xamrdz.com/backend/39r1938921.html

相关文章: