目录
1.Kotlin语言的函数参数学习
// TODO 23 Kotlin语言的函数参数学习
fun main() {
//我们现在开始写函数
//第一步:函数输入输出的声明 //第二步:对上面函数的实现
val methodAction : (Int,Int,Int) -> String = { number1 , number2 , number3 ->
val inputValue = 66
"$inputValue bxb 参数一:$number1,参数二:$number2,参数三:$number3"
}
println(methodAction(1,2,3))
}
2.Kotlin语言的it关键字特点
// TODO 25 Kotlin语言的it关键字特点
fun main() {
val methodAction : (Int , Int , Int) -> String = { n1 , n2 , n3 ->
val inputValue = 66
println("$inputValue bxb,n1 $n1,n2 $n2,n3 $n3")
"$inputValue bxb,n1 $n1,n2 $n2,n3 $n3"
}
methodAction.invoke(1,2,3)
//等价于
methodAction(1,2,3)
//如果传入的参数是一个,那么默认有一个 it :String
val methodAction02 : (String) -> String ={
"$it bxb"
}
println(methodAction02.invoke("帅帅帅"))
val methodAction03 : (Double) -> String ={
"$it bxb"
}
println(methodAction03.invoke(12.34))
}
3.Kotlin语言的匿名函数的类型推断
// TODO 26 Kotlin语言的匿名函数的类型推断
fun main() {
//匿名函数:类型推断为String
//方法名:必须指定参数类型 和 返回类型
//方法名 = 类型推断返回类型
val method1 = { v1 : Double , v2 : Float, v3 : Int ->
"v1:$v1,v2:$v2,v3:$v3"
}
println(method1(12.3,123.4f,45))
val method2 = {
345.6f
}//method2 : () -> Float
println(method2())
val method3 = { number : Int ->
number
}//method3 : () -> Int
println(method3(8))
}
4.Kotlin语言的lambda学习
// TODO 27 Kotlin语言的lambda学习
fun main() {
//匿名函数 == lambda表达式
val addResultMethod = { number1 : Int ,number2 : Int ->
"两数相加的结果为:${number1 + number2}"
}//addResultMethod : (Int,Int) -> String
println(addResultMethod(1,2))
//匿名函数 入参 Int , 返回类型 Any
//lambda表达式的参数Int, lambda表达式的结果Any类型
val weekResultMethod = { number : Int ->
when(number){
1 -> "星期1"
2 -> "星期2"
3 -> "星期3"
4 -> "星期4"
else -> -1
}
}//weekResultMethod : (Int) -> Any
println(weekResultMethod(3))
//匿名函数 属于 lambda 表达式
}
5.Kotlin语言中定义参数是函数的函数
// TODO 28 Kotlin语言中定义参数是函数的函数
fun main() {
loginAPI("bxxb","123456"){ msg : String,code : Int ->
println("登录结果如下:msg:$msg,code:$code")
}
}
//模拟数据库SQLServer
const val USER_NAME_SAVE_DB = "bxb"
const val USER_PWD_SAVE_DB = "123456"
//登录API 模仿前端
public fun loginAPI(username : String, userpwd : String,responseResult : (String , Int) -> Unit){
if(username == null || userpwd == null){
TODO("用户名或密码为空") //出现问题程序终止
}
//前端校验
if (username.length > 3 && userpwd.length > 3){
if(webServiceLoginAPI(username,userpwd)){
//登录成功
responseResult("login success",200)
}else{
//登录失败
responseResult("login error",444)
}
}else{
TODO("用户名和密码违规")
}
}
//登录API 服务器
private fun webServiceLoginAPI(name : String,pwd : String) : Boolean{
return name == USER_NAME_SAVE_DB && pwd == USER_PWD_SAVE_DB
}