[Kotlin][最佳实践] Kotlin中参数函数的参数中如何传递receiver对象

[Kotlin][Best Practice] How to pass receiver object in parameter function's parameter in Kotlin

我有以下代码:

internal data class DataClass(
    val name: String
)

internal fun DataClass.defineService() {
    //Some code
    val config = this
    return SomeOtherClassB.someAPI() { () -> 
        createService(config)
    }
}

internal fun SomeOtherClassA.createService(
    config: DataClass
){
    //Some code
}

将 DataClass 从 defineService() 传递到 createService() 的最佳方法是什么?我不想分配 val config = this,感觉不对。

你可以跳过中间变量,把createService(this@defineService)。这允许您指定 this 的范围 defineService.

What's the best way to pass DataClass from defineService() to createService()?

使用 qualified this 语句:

internal fun DataClass.defineService() {
    //Some code
    return SomeOtherClassB.someAPI() { () -> 
        createService(this@defineService)
    }
}