Пожалуйста, объясните мне это утверждение kotlin? - PullRequest
0 голосов
/ 19 мая 2019

Пожалуйста, объясните мне, что это значит (this@A.address) и спасибо.

class A(val address: String) {

 inner class B(telephone: String) {

 fun printAddress() = println(this@A.address)

 }

 }

1 Ответ

3 голосов
/ 19 мая 2019

this@A называется квалифицированным этим, и это кратко документировано здесь .

this@A используется для доступа к внешнему объекту типа A. Поскольку B является внутренним классом, экземпляры B должны быть созданы с использованием экземпляра включающего класса A, используется экземпляр A, доступ к которому осуществляется через this@A. Таким образом, this@A.address является полем address экземпляра класса A, используемым для создания текущего экземпляра класса B.

...