with函数的最大作用:简化代码,当你创建一个Textview,之后需要给他设置很多属性的时候很实用。
inline fun <T> 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("测试")
text.setTextSize(30)
Kotlin代码,使用with()
with(tv_text){
text="测试"
textSize=30
}
with()函数中的参数是一个对象,我们可以在方法中直接引用对象的公有属性或者公有方法,而不用使用方法名。
如果一段代码你需要多次使用一个对象,那么你就可以使用with函数