Kotlin中高阶函数的一点笔记

好久没写博客了… 中间有几次想写博客,不过还多次提笔,却发现官网早已经把所有都说过了…,忽然有种明白人生中的某种哲理…
下面看代码吧

    class User(var name: String)

    fun test1(user: User,block: User.() -> Unit){
        user.name = "1"
        block(user)
    }
    fun test2(user: User,block: User.() -> Unit){
        user.name = "1"
        block(User("2"))
    }

    @Test
    fun main(){
        val user = User("init")
        test1(user){
            println("test1--->${this.name}")
        }
        test2(user){
            println("test2--->${this.name}")
        }
    }
输出结果:
test1--->1
test2--->2

结论:
block() 调用之后,才会真正的把值回传回去

猜你喜欢

转载自blog.csdn.net/Mr_Tony/article/details/82498805