在 Kotlin 中的换行符处打开大括号

Eng*_*uad 5 kotlin

根据Kotlin 编码约定,不鼓励将左大括号放在自己的行上,因为分号是可选的,这可能会导致令人惊讶的行为。如果我们将左大括号放在自己的行上,会出现什么令人惊讶的行为?


格式化

在大多数情况下,Kotlin 遵循 Java 编码约定。

使用 4 个空格进行缩进。不要使用选项卡。

对于大括号,将左大括号放在构造开始的行的末尾,并将右大括号放在与左大括号水平对齐的单独行上。

if (elements != null) {
    for (element in elements) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

(注意:在 Kotlin 中,分号是可选的,因此换行符很重要。语言设计假定 Java 风格的大括号,如果您尝试使用不同的格式样式,您可能会遇到令人惊讶的行为。)

Fra*_*esc 1

关于令人惊讶的行为的评论不是关于花括号的,而是更笼统的。考虑这段代码:

val result = 1
+ 2
println(result)
Run Code Online (Sandbox Code Playgroud)

您可能期望它打印“3”,但它打印“1”,因为这是 2 个语句,val result = 1并且+ 2

如果你想打破界限,你可以在 Kotlin 中这样写:

val result = 1 +
2
Run Code Online (Sandbox Code Playgroud)

这是一个简单的示例,但强调了不使用分号来确定语句结束所带来的差异。