Kotlin 中集合的构建器语法

J.E*_*zyk 5 collections builder kotlin

我正在启动 Kotlin 并希望以构建器语法的模式配置Arrayof Labels。我想出了 Kotlin 标准库函数 ( apply) 和集合上的辅助函数 ( forEach)。将其称为构建器模式是否正确?这对我来说意味着声明、分配和配置在一行/一步中完成。我很欣赏任何关于如何以更紧凑和清晰的“Kotlin 式”方式编写它的想法,或者这或多或少是首选的 Kotlin 语法。顺便说一句,有很多方法可以解决这个问题(使用let而不是apply不返回接收器)。

val labels = arrayOf(Label("A"),Label("B"),Label("C"),Label("D")).apply {
    this.forEach { it.prefWidth = 50.0 }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*nik 4

我的建议是避免Label在你的习语中重复这个词:

val labels = arrayOf("A", "B", "C", "D")
        .map { Label(it).apply { prefWidth = 50.0 } }
        .toTypedArray()
Run Code Online (Sandbox Code Playgroud)

这会创建更多的瞬态对象,但它会减少噪音,并使您更容易看到标签之间变化的事物。