如何在 Kotlin 中惯用地格式化 .apply{}?

How to idiomatically format .apply{} in Kotlin?

这可能看起来有点微不足道,但由于我们阅读的代码比编写的代码多,我想知道这些版本中的哪个版本对您来说看起来更好、更易读

private val VALUES by lazy {
    mutableListOf<Value>().apply {
        add(VALUE_1)
        add(VALUE_2)
        add(VALUE_3)
    }
}

private val VALUES by lazy {
    mutableListOf<Value>()
        .apply {
            add(VALUE_1)
            add(VALUE_2)
            add(VALUE_3)
        }
}

换句话说,我们应该关心方法(.apply)与调用者在同一行,还是结束大括号与(.apply)方法对齐?

根据https://kotlinlang.org/docs/reference/coding-conventions.html

链式调用回绕

包装链式调用时,将 . 字符或 ?. 运算符放在下一行,并缩进一次:

val anchor = owner
    ?.firstChild!!
    .siblings(forward = true)
    .dropWhile { it is PsiComment || it is PsiWhiteSpace }

链中的第一个调用通常应该在它之前有一个换行符,但如果代码这样更有意义,则可以省略它。

所以这取决于你:)