Есть ли способ получить текущее имя функции изнутри области видимости? - PullRequest
0 голосов
/ 03 февраля 2020

Просто, учитывая:

class Foo {
    fun foo() = runBlocking {
        bar()
    }
}

inline suspend fun <reified T> T.bar() {
    coroutineScope {
        println(T::class.simpleName) // I want this to output 'Foo'
    }
}

... Я хочу получить 'Foo' в качестве вывода. Я думаю, что это не осуществимо, но подумал, что я спрошу на всякий случай:)

1 Ответ

0 голосов
/ 03 февраля 2020

runBlocking имеет параметр this: CoroutineScope, и ваша функция bar() выполняется на этом экземпляре CoroutineScope, а не на экземпляре класса Foo.

fun foo() = runBlocking {
    this@Foo.bar()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...