您好,登錄后才能下訂單哦!
Kotlin this詳解及實例
為了表示當前函數的接收者(receiver), 們使用this表達式:
如果this沒有限定符,那么它指向包含當前代碼的最內層范圍.如果想要指向其他范圍內的this,需要使用標簽限定符。
帶限定符的this
為了訪問更外層范圍(比如 類, 或 擴展函數, 或有標簽的 帶接受者的函數字面值)內的 this, 我們使用this@label , 其中的 @label 是一個標簽, 代表我們想要訪問的this所屬的范圍:
class A { // 隱含的標簽 @A inner class B { // 隱含的標簽 @B fun Int.foo() { // 隱含的標簽 @foo val a = this@A // 指向 A 的 this val b = this@B // 指向 B 的 this val c = this // 指向 foo() 函數的接受者, 一個 Int 值 val c1 = this@foo // 指向 foo() 函數的接受者, 一個 Int 值 val funLit = lambda@ fun String.() { val d = this // 指向 funLit 的接受者 } val funLit2 = { s: String -> // 指向 foo() 函數的接受者, 因為包含當前代碼的 Lambda 表達式沒有接受者 val d1 = this } } } }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。