美文网首页
Kotlin各函数使用

Kotlin各函数使用

作者: YoriZ | 来源:发表于2019-03-15 14:46 被阅读0次

参考自 Kotlin系列之let、with、run、apply、also函数的使用 个人简略总结

一、lambda回调函数

用于只有一个回调方法的接口

mView.setOnClickListener{
    //todo
}

二、作用域函数let

用于判断变量非空后的作用域使用,返回值为最后一行

privat var intent:Intent?=null

val value:String? = intent?.let{
      it.putExtra("key1","value")
      it.putExtra("key2","value")
      getStringExtra("key")
}

三、作用域函数with

用于调用同个类的多个方法免去类名直接调用

with(intent){
      getStringExtra("key",value)
      putExtra("key1","value")
}

四、作用域函数run

let和with的混合体

privat var intent:Intent?=null

intent?.run{
      getStringExtra("key",value)
      putExtra("key1","value")
}

五、作用域函数apply

用于返回需要对象实例初始化的对象本身,函数块内免去类名直接调用
同时用于多层级判断非空操作

//用于返回需要对象实例初始化的对象本身
val intent = Intent().apply{
      putExtra("key1","value")
      putExtra("key2","value")
}

//用于多层级判断非空操作
carBean?.apply{
// carBean不为空时操作carBean
}.engine?.apply{
// engine不为空时操作engine
}.valve?.apply{
// valve不为空时操作valve
}

六、作用域函数also

和let相同,区别在于返回值为当前对象,用于多个扩展函数链式调用

carBean.also{
    engine = Engine().apply{
          valve = "valve version"
    }
}.engine.also{
// 对valve进行操作,并返回engine对象
}

相关文章

  • Kotlin各函数使用

    参考自 Kotlin系列之let、with、run、apply、also函数的使用 个人简略总结 一、lambda...

  • Kotlin 函数

    Kotlin中函数的使用方法 函数的语法格式: 函数声明:Kotlin中的函数声明使用关键字fun 函数名称:每一...

  • Kotlin使用扩展函数简化findViewById事件

    1.android中调用 2.kotlin中使用 kotlin扩展函数使用 我们考虑利用扩展函数结合泛型,避免频繁...

  • 类和继承

    类 Kotlin 中使用 关键字 Class 声明类 构造函数 Kotlin 中类可以有主构造函数 和 次构造函数...

  • Kotlin学习笔记

    kotlin 学习 kotlin 中使用 vararg 标记可变参数,调用方法: 特性:直接使用函数类型 kotl...

  • Kotlin 函数

    函数声明 Kotlin 中的函数使用 fun 关键字声明: 函数用法 调用函数使用传统的方法: 调用成员函数使用点...

  • Kotlin定义函数

    函数函数声明 Kotlin 中的函数使用 fun 关键字声明: 函数用法 调用成员函数使用点表示法:

  • Kotlin 函数4 - 函数重载与默认参数

    Kotlin 函数4 - 函数重载与默认参数 在 Kotlin 中可以使用默认参数的方式来代替函数的重载,就像下面...

  • 每天学一点 Kotlin -- 函数:初次见面

    1. 函数的定义和使用 1.1 Kotlin 中定义函数用关键字: fun 1.2 Kotlin 中函数的返回值在...

  • Kotlin-函数

    函数声明 Kotlin 中的函数使用 fun 关键字声明: 函数用法 调用函数使用传统的方法: 默认参数 函数参数...

网友评论

      本文标题:Kotlin各函数使用

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