Kotlin 基础学习04

目录

1.Kotlin语言的函数参数学习

2.Kotlin语言的it关键字特点

3.Kotlin语言的匿名函数的类型推断

4.Kotlin语言的lambda学习

5.Kotlin语言中定义参数是函数的函数


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
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值