1TBS 风格的类的左大括号应该放在哪里?

iwi*_*ill -13 coding-style indentation curly-braces

我读过维基百科上的缩进样式条目,但不是很清楚。

对于K&R 风格,它说:

每个函数的下一行都有其左大括号,其缩进级别与其标题相同

然而,函数内的多行块的左大括号与其各自的控制语句位于同一行

对于1TBS (OTBS) 样式,它说:

函数的左大括号位于同一行,并用空格分隔

它根本没有谈论类,但是Java 风格却谈论了类:

左大括号不仅对于函数内的块位于同一行,而且对于类或方法声明也位于同一行

如果我遵循 1TBS 风格,类定义的左大括号将放在哪里?

我也做了很多搜索(我更喜欢立即得到答案,而不是提出问题并等待很长时间),但没有结果。

Cod*_*ray 6

对此不太可能有客观的答案,因为 K&R 和 1TBS 风格都是在 C 编程语言的上下文中出现的,其中没有类定义。

\n

由于支持类的 C 派生语言(例如,C++、Java 等)共享大部分语法,因此为 C 出现的大括号样式约定将在这些派生语言中使用并适应这些派生语言是很自然的。但它们恰恰是\xe2\x80\x94的衍生和改编。这就是为什么维基百科文章提到“Java”是K&R 风格的“变体” 。

\n

即使遵循 K&R 或 1TBS 样式,也不存在为类定义放置左大括号的正确位置或错误位置,因为类不属于这两种样式中的任何一种。不可避免地,您将遵循这些原始样式的某些变体,其中包括类定义的约定,并且在变体中,您选择的任何约定都是有效的。

\n

最终,这并不重要。以您认为可读的方式编写代码(如果您是从头开始编写)或以符合项目中其他现有代码文件的方式编写代码。约定仅是:约定。没有客观的答案,这并不重要。

\n

  • 在 Meta 上,您认为这个问题不是基于意见的(隐含地,因为您认为它是主题性的)。我认为这个答案*解释了为什么*:由于所讨论的样式是为不包含“类”的语言设计的,因此确定如何使它们适应包含“类”的语言,需要一些解释。 (2认同)