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