val res = with(obj) { //这里是obj对象的上下文 "value"//这里是with函数的返回值 }
fun main() { doSomething() } fun doSomething() { val list = listOf<String>("Apple", "Banana", "Pear") val sb = StringBuilder() sb.append("Start eating fruits.\n") for (fruits in list) { sb.append(fruits).append("\n") } sb.append("Ate all fruits.") val res = sb.toString() println(res) }
fun withTest() { val list = listOf<String>("Apple", "Banana", "Pear") val res = with(StringBuilder()) { append("Start eating fruits.\n") for (fruits in list) { append(fruits) append("\n") } append("Ate all fruits.") toString()//最后一行就是函数的返回值 } println(res) }
fun runTest() { val list = listOf<String>("Apple", "Banana", "Pear") //将StringBuilder调出来,用来调用run函数 val res = StringBuilder().run { append("Start eating fruits.\n") for (fruits in list) { append(fruits) append("\n") } append("Ate all fruits.") toString() } println(res) }
fun applyTest() { val list = listOf<String>("Apple", "Banana", "Pear") val res = StringBuilder().apply { append("Start eating fruits.\n") for (fruits in list) { append(fruits) append("\n") } append("Ate all fruits.") } println(res.toString()) }
object Util { fun doAction() { println("do something") } }
class Util { //非静态方法属性 fun doAction1() { } //拥有静态方法的属性 companion object { fun doAction2() { } } }
class Util { //非静态方法属性 fun doAction1() { } //拥有静态方法的属性 companion object { @JvmStatic fun doAction2() { } } }
上一个:Arthas之实例操作