Kotlin 科特林:相似类中的双冒号与Lambda

Kotlin 科特林:相似类中的双冒号与Lambda,kotlin,Kotlin,我知道我的第一个第二个示例使用了一个lambda函数,并传入了一个参数。我试图理解为什么它与我的第二个样板示例不同,在这个示例中使用了双冒号而不是lambda。(仍然是一个科特林新手,试图让我的头绕着来自python背景的双冒号) VS ::Issuer准确地表示什么?假设存在一个类Issuer,::Issuer将被分配给它的构造函数。将解析并使用具有适当数量参数(本例中为一个)的构造函数,这相当于lambda{Issuer(it)} 如果没有这样的类,则将使用名为Issuer的函数,如果它存在

我知道我的第一个第二个示例使用了一个lambda函数,并传入了一个参数。我试图理解为什么它与我的第二个样板示例不同,在这个示例中使用了双冒号而不是lambda。(仍然是一个科特林新手,试图让我的头绕着来自python背景的双冒号)

VS


::Issuer
准确地表示什么?

假设存在一个类
Issuer
::Issuer
将被分配给它的构造函数。将解析并使用具有适当数量参数(本例中为一个)的构造函数,这相当于lambda
{Issuer(it)}

如果没有这样的类,则将使用名为
Issuer
的函数,如果它存在,则使用一个参数


请参阅:

这是一个非常简单和清晰的解释。非常感谢。
class Service(services: PluginServiceHub) {
    init {
        services.registerFlowInitiator(Landlord::class.java) { Landlord(it) }
    }
}
class Service(services: PluginServiceHub) {
    init {
        services.registerFlowInitiator(IssuanceRequester::class.java, ::Issuer)
    }
}