对于Kotlin来说是新手,我已经看到了以下代码:
val myModule : Module = module {
viewModel { MyViewModel(get()) }
single { MyRepository() }
}
看一下Kotlin文档,对我来说,尚不清楚“模块”后面的花括号是什么意思。模块是一个函数,花括号用于初始化函数吗?如果是这样,您能否指出Kotlin文档中指示这一点的那一部分?我在文档中找不到任何显示此示例的内容。这是链接:
答案 0 :(得分:2)
请注意,您的示例看起来像Koin代码。
从更一般的意义上讲: 在kotlin中,当一个函数的最后一个参数是另一个函数(请参见Higher order functions)时,可以将其放在括号之外,如果它是唯一的(非可选)参数,则可以在肠胃中省略括号。
在您的示例中module
viewModel
和single
是将另一个函数作为唯一参数的函数,通过这种方式,您可以直接传递定义此参数的lambda,而无需任何括号。
答案 1 :(得分:1)
花括号表示module
函数接收一个lambda作为参数。 http://kotlinlang.org/docs/reference/lambdas.html#passing-a-lambda-to-the-last-parameter