val result = with (obj){ //这里是obj的上下文 "value"//with函数返回值 }
实例:
1 2 3 4 5 6 7 8 9 10
val list= listOf("Apple","Banana","Pear") val result=with(StringBuilder()){ append("Start eating fruits.\n") for(fruit in list){ append(fruit).append("\n") } append("Ate all Fruits") toString() } println(result)
run
作用:同with相同只是通常不会直接调用而是在对象的基础上调用
标准形式:
1 2 3 4
val result =obj.run{ //这里是obj的上下文 "value"//run函数返回值 }
实例:
1 2 3 4 5 6 7 8 9 10
val list= listOf("Apple","Banana","Pear") val result=StringBuilder().run{ append("Start eating fruits.\n") for(fruit in list){ append(fruit).append("\n") } append("Ate all Fruits") toString() } println(result)
apply
作用:作用和run类似只是无法指定返回值
标准形式:
1 2 3 4
val result =obj.apply{ //这里是obj的上下文 } result==obj
实例:
1 2 3 4 5 6 7 8 9
val list= listOf("Apple","Banana","Pear") val result=StringBuilder().apply{ append("Start eating fruits.\n") for(fruit in list){ append(fruit).append("\n") } append("Ate all Fruits") } println(result.toString())
利用Intent传递数据时也可以使用apply函数
1 2 3 4 5
val intent=Intent(context,SecondActivity::class.java).apply{ putExtra("param1","data1") putExtra("param2","data2") } context.startActivity(intent)