代码之家  ›  专栏  ›  技术社区  ›  Johann

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

  •  0
  • Johann  · 技术社区  · 7 年前

    Kotlin的新手,我看到了以下代码:

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

    查看Kotlin文档,我不清楚“模块”后面的大括号是什么意思。模块是否为函数,大括号用于初始化函数?如果这是真的,你能告诉我Kotlin文档中指出这一点的部分吗?我在文档中找不到任何显示此示例的内容。以下是链接:

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

    2 回复  |  直到 7 年前
        1
  •  2
  •   Eric Martori    7 年前

    请注意,您的示例如下 Koin 密码

    在kotlin中,当函数的最后一个参数是另一个函数时(请参见 Higher order functions )您可以将它放在括号外,如果它是唯一的(非可选)参数,则可以在内部省略括号。

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

        2
  •  1
  •   yole    7 年前