У меня есть этот пример кода, который я использую для тестирования источника света в моем проекте, написанном в Kotlin.
fun Light.test() {
val open = this.isOpen()
this.setOpen(!open)
val that = this
Timer().schedule(500) {
that.setOpen(open)
}
}
Видите, с Timer().schedule(500)
в лямбде я, кажется, потерять область действия this
, и this
станет самим timertask
вместо объекта Light
.
Я нашел решение, используя старую добрую моду val that = this
, извлеченную из 2010 Javascript, но мне интересно, есть ли более элегантный способ сделать это в Kotlin.
Спасибо вы за вашу помощь