Scala-语法风格之缩进

参考

Scala官网

Scala style guide-Indentation

简述

每个缩进级为 两个空格,而不是 Tab 制表符。

例如:

1
2
3
4
5
6
7
// right!
class Foo {
def twospaces = {
val x = 2
..
}
}

Scala语言鼓励使用大量嵌套作用域和逻辑块(函数值等)。

换行

如果一个表达式过长(超过80个字符),这样看起来不易于理解,那么你可以换行并用两个空格缩进来表示

如下

1
2
3
val result = 1 + 2 + 3 + 4 + 5 + 6 +
7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 +
15 + 16 + 17 + 18 + 19 + 20

如果没有这种结尾方法,Scala会在一行的末尾推断出一个分号,它有时会包装,有时甚至不会发出警告而抛弃编译。

大量参数的方法

当调用一个接受大量参数(在五个或更多范围内)的方法时,通常需要将方法调用包装到多行上。在这种情况下,将每个参数单独放在一行上,从当前缩进级别缩进两个空格:

1
2
3
4
5
foo(
someVeryLongFieldName,
andAnotherVeryLongFieldName,
"this is a string",
3.1415)

这样,所有参数都会排成一行,如果稍后需要更改方法的名称,则无需重新对齐它们。

应该非常小心地避免超出行长度这种类型的调用。更具体地说,当每个参数必须缩进超过50个空格以实现对齐时,应该避免这种调用。在这种情况下,调用本身应该移动到下一行并缩进两个空格:

1
2
3
4
5
6
7
8
9
10
11
12
13
// right!
val myLongFieldNameWithNoRealPoint =
foo(
someVeryLongFieldName,
andAnotherVeryLongFieldName,
"this is a string",
3.1415)

// wrong!
val myLongFieldNameWithNoRealPoint = foo(someVeryLongFieldName,
andAnotherVeryLongFieldName,
"this is a string",
3.1415)
0%
隐藏