初始化Kotlin中的字段成员函数

时间:2019-01-09 09:23:27

标签: kotlin

对于Kotlin来说是新手,我已经看到了以下代码:

val myModule : Module = module {
  viewModel { MyViewModel(get()) } 
  single { MyRepository() }
}

看一下Kotlin文档,对我来说,尚不清楚“模块”后面的花括号是什么意思。模块是一个函数,花括号用于初始化函数吗?如果是这样,您能否指出Kotlin文档中指示这一点的那一部分?我在文档中找不到任何显示此示例的内容。这是链接:

https://kotlinlang.org/docs/reference/properties.html

2 个答案:

答案 0 :(得分:2)

请注意,您的示例看起来像Koin代码。

从更一般的意义上讲: 在kotlin中,当一个函数的最后一个参数是另一个函数(请参见Higher order functions)时,可以将其放在括号之外,如果它是唯一的(非可选)参数,则可以在肠胃中省略括号。

在您的示例中module viewModelsingle是将另一个函数作为唯一参数的函数,通过这种方式,您可以直接传递定义此参数的lambda,而无需任何括号。

答案 1 :(得分:1)

花括号表示module函数接收一个lambda作为参数。 http://kotlinlang.org/docs/reference/lambdas.html#passing-a-lambda-to-the-last-parameter