9.kotlin 内置函数

作者: ggghhhhhhhh | 来源:发表于2020-06-10 09:17 被阅读0次

    在kotlin中,有很多好用的内置函数,用好了可以大大提升开发效率,下面我们就来聊聊比较常用的那几个

    1.let

    1.1简介

    • 定义:一个作用域函数
    • 作用:定义一个变量在一个特定的作用域范围内,避免一些判断null的操作
    • 应用场景:明确一个变量所处特定的作用域范围内可使用,针对一个可null的对象统一做判空处理

    //为了方便以下代码说明,统一声明类和变量

    class Person(var name:String="lgh",var age:Int=18) {
        fun fun1(){ println("person fun1") }
        fun fun2(){ println("person fun2") }
        fun fun3(){ println("person fun3") }
    }
    
    var mVar:Person?=null
    
    

    1.2 使用示例

    
    //java中代码
    if(mVar!=null){
        mVar.fun1();
        mVar.fun2();
        mVar.fun3();
    }
    
    //使用kotlin,不适用let
    mVar?.fun1()
    mVar?.fun2()
    mVar?.fun3()
    
    //使用kotlin,并且适应let
    //统一判空处理 & 确定了mVar变量的作用域
    mVar?.let{
        it.fun1()
        it.fun2()
        it.fun3()
    }
    
    

    2.also

    2.1简介

    作用: 类似于let ,区别至于返回值

    • let:返回值=最后一行 return 的表达式
    • also: 返回值=传入对象的本身

    2.2 示例

    //let
    val result =mVar?.let {
         it.fun1()
         it.fun2()
         it.fun3()
         100  //这个才是最终返回的
    }
    //let的最终返回结果 result = 100
    
    //also
    val result1 = mVar?.also {
          it.fun1()
          it.fun2()
          it.fun3()
          100
     }
    //also 最终返回的result1 = mVar
    
    

    3.with

    3.1 简介

    调用一个对象的多个方法或者属性时,可以省略掉重复的对象名,直接调用方法或者属性

    3.2 示例

    mVar=Person("lgh",18)
    
    //java用法
    println("name is "+mVar.name+",age is "+mVar.age)
    mVar.fun1();
     
    //kotlin 并且使用with
    with(mVar){
         //在with内部可以直接调用Person的属性
         println("name is $name,age is $age")
         fun1() //可以直接调用Person内部的方法
    }
    

    4.run

    4.1 简介

    结合了let、with的作用

    1. 调用一个对象的多个方法或者属性时,可以省略掉重复的对象名,直接调用方法或者属性
    2. 定义一个变量在特定作用域内,统一做判空处理

    4.2 示例

    mVar?.run {//可以统一判空
         println("my name is $name,I am $age years old")//直接调用对象内部的属性
         fun1() //函数
    }
    

    5.apply

    5.1 简介

    与run函数类似,但区别在于返回值:

    • run :返回最后一行的值/表达式
    • apply : 返回传入的对象本身

    5.2 示例

    mVar= Person()
    //run
    val result=mVar?.run {
         println("my name is $name,I am $age years old")//直接调用对象内部的属性
         fun1() //函数
         100
    }
    //run函数 最终返回值 result=100
    
    //apply
    val result1=mVar?.apply {
         println("my name is $name,I am $age years old")//直接调用对象内部的属性
         fun1() //函数
         100
    }
    //apply函数最终返回值 result1=mVar
    

    好了,以上就是kotlin常用的内置函数,看起来是不是很方便
    最后来总结以下

    6.总结

    image.png

    相关文章

      网友评论

        本文标题:9.kotlin 内置函数

        本文链接:https://www.haomeiwen.com/subject/guvtohtx.html