有一条规则" 4.5.2 Indent continuation lines at least +4 spaces"在Google Java Style Guide中说:
通常,当且仅当它们以语法并行元素开头时,两个连续行使用相同的缩进级别。
有人可以解释" 语法并行元素"是什么意思并为这种情况提供一些例子?
答案 0 :(得分:1)
您引用的Google Java Style指南是指所谓的 continuation indent ,它是换行后使用的缩进。在这种情况下,(可能)语法并行元素是您要包装的表达式。
示例1(语法并行):
foo("bar"
+ "baz"
+ "boo");
示例2( not 语法并行):
foo("bar"
+ foo2("bar"
+ "baz"));
在示例2中,对foo2()
的方法调用嵌套在foo()
的调用中,因此foo2()
的参数与{{1}的参数不在同一级别换句话说:它们不是“语法并行”。
在Google Java Style中,这意味着foo()
部分可能缩进超过4个空格。
话虽如此,我认为“语法平行”一词是该文件作者的创作;至少我没有看到它在其他任何地方使用过。
答案 1 :(得分:0)
简而言之,这意味着如果将两个元素解析为同一个构造,那么它们将保持相同的缩进。例如。
String[] elements = new String[] { "bob",
"joe",
"pete" };
有一定道理(即使它没有以这种方式格式化),因为它们是同一数组定义中的所有String
个元素。
也在一个区块内
{
System.out.println("hi");
actNow(input);
for (int i = 0; i < j; i++) {
return 5;
}
}
System.out.println("hi");
,actNow(input);
和for循环是相同缩进的,因为它们是同一个块中的所有语句。请注意,return 5;
没有缩进,因为它是for循环块中的语句。因此,return 5;
在语法上与其他语句不同,因为它具有不同的块位置。