如何在 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 }
链中的第一个调用通常应该在它之前有一个换行符,但如果代码这样更有意义,则可以省略它。
所以这取决于你:)
这可能看起来有点微不足道,但由于我们阅读的代码比编写的代码多,我想知道这些版本中的哪个版本对您来说看起来更好、更易读
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 }
链中的第一个调用通常应该在它之前有一个换行符,但如果代码这样更有意义,则可以省略它。
所以这取决于你:)