Kotlin中的with函数

with函数是一个非常有用的函数,它可以简化很多代码量。

inline fun  with(t: T, body: T.() -> Unit) { t.body() }

with函数接收一个 T 类型的对象和一个被作为扩展函数的函数。这个方法主要是让这个t对象去执行body函数。因为第二个参数是一个函数,所以第二个函数可以放在圆括号外边。我们可以在第二个参数里面创建代码块,在这个代码块里可以使用 this和直接访问public的方法和属性

例如java中的一段代码

TextView text=(TextView)findViewById(R.id.tv_text)
text.setText("hahaha")
text.setTextSize(23)

Kotlin代码

with(tv_text){
text="hahaha"
textSize=23
}

上面两段代码实现的功能是一样的,kotlin的代码更加简洁。
with函数中的参数是一个对象,我们可以带方法中直接引用对象的公有属性或者公有方法,而不用使用方法名。
如果一段代码你需要多次使用一个对象,那么你就可以使用with函数。

内联函数
内联函数与普通的函数有点不同。一个内联函数会在编译的时候被替换
掉,而不是真正的方法调用。这在一些情况下可以减少内存分配和运行时
开销。举个例子,如果我们有一个函数,只接收一个函数作为它的参数。
如果是一个普通的函数,内部会创建一个含有那个函数的对象。另一方
面,内联函数会把我们调用这个函数的地方替换掉,所以它不需要为此生
成一个内部的对象。

你可能感兴趣的:(Kotlin中的with函数)