Kotlin 基础

52 阅读1分钟

语法糖 apply、let、run、also、with

函数是否是扩展函数引用调用类返回值
with需要设置参数最后一行为返回值
run内部使用 this最后一行为返回值
let内部使用 it返回当前类
apply内部使用 this返回当前类
alos内部使用 it最后一行为返回值

语法糖 ::

使用场景:
  • 引用类的属性
  • 引用类的方法
  • 获取类的 Class 对象
  • 引用构造函数

举个🌰:

class Data{
    var age:Int = 0
    var Name:String = ""
    
    constructor(number:Int){...}
    
    fun add(age:Int){...}
}

引用属性
 var data = Data(1, "张三")   
 var dataRef = Data::age
 
 dataRef.get(data)      
 // age = 1   
 dataRef.set(data, 11)  
 // age = 11
引用方法
val numbers = listOf(-1, 0, 1)   
 numbers.filter(::add)
获取 Class 对象

Intent页面跳转时

引用构造函数
fun add(kFunction2: (number: Int) -> Data) {  
    var data:Data = kFunction2(1)  
}

fun callData(){
    add(::Data)
}