美文网首页kotlin频道Kotlin开发知识Android
Kotlin(1.1)学习笔记(2)——this关键字

Kotlin(1.1)学习笔记(2)——this关键字

作者: Rhett_S | 来源:发表于2017-05-27 15:11 被阅读61次

    这一块的内容在官网介绍中已经比较清楚了,这里基本是复数一遍加深印象。
    为了表示当前的 接收者 我们使用 this 表达式:
    的成员中,this 指的是该类的当前对象
    扩展函数或者带接收者的函数字面值中, this 表示在点左侧传递的 接收者 参数。

    如果 this 没有限定符,它指的是最内层的包含它的作用域。要引用其他作用域中的 this,请使用 标签限定符
    限定的 this
    要访问来自外部作用域的this(一个 或者扩展函数, 或者带标签的带接收者的函数字面值)我们使用this@label
    ,其中 @label
    是一个 代指 this 来源的标签:

        /**
         *限定词this的demo
         */
        class TestThisA{
    
            inner  class TestThisB{
                fun Int.foo(){
                    val a = this@TestThisA //A的this
                    val b = this@TestThisB// B的this
                    val c = this// foo()的类型 Int的this
                    val c1 = this@foo//同c
    
                    val funLit = lambda@ fun String.(){
                        val d = this//funLit 的接收者,也就是匿名函数的类型 String的this
                    }
    
                    val funLit2 = {
                        s: String -> val d1 = this//这里和上面的d不同的地方在于,
                        // 这个lambda表达式没有接受这,所以这个this指向的是最近的this,即foo()的接收者Int
                    }
                }
            }
        }
    

    相关文章

      网友评论

        本文标题:Kotlin(1.1)学习笔记(2)——this关键字

        本文链接:https://www.haomeiwen.com/subject/iwjqfxtx.html