有时候你必须在你的源代码中写入更好的内容.你如何缩进由此停止的东西.
你可以缩进它:
very long
statement;
other statement;
Run Code Online (Sandbox Code Playgroud)
这使得区分以下代码变得更加困难,如示例所示.另一方面,你可以缩进一级:
very long
statement;
other statement;
Run Code Online (Sandbox Code Playgroud)
这样可以更容易,但可能会发生,长行是嵌套块的开始,您要缩进,如下所示:
if ((long test 1) &&
(long test 2) &&
(long test 3)) {
code executed if true;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,再次难以阅读.我能想到的第三种可能性就是不打破长线,现代编辑可以处理它并创建柔和的线条.但是对于另一个编辑器,你必须侧向滚动,你不能影响位置,编辑器打破你的长队.
你更喜欢什么样的可能性?你有其他想法来解决这个问题吗?你有理由支持你的偏好吗?
您是否遵循源代码中包含长行的标准?您觉得哪种线路长度最舒适?
有时我发现有人在宽屏显示器上编程并喜欢用它的全宽来显示源代码.我更喜欢较短的线条,大约80-100个字符,但我很难说服同事随着宽屏设备的日益普及.
编辑:
类似的问题:
包装代码行的首选方法是什么,特别是涉及长参数列表时?
有几个与包装线有关的问题(比如在编写代码时是否包装文本?还是行宽格式标准),但是我找不到一个涵盖一行代码的地方.
假设我们有一行代码可以像这个例子一样继续前进:
int SomeReturnValue = SomeMethodWithLotsOfArguments(Argument1, Argument2, Argument3, Argument4);
Run Code Online (Sandbox Code Playgroud)
怎么应该包裹?
以下是我能想到的几种方式,以及它们的一些缺点:
int SomeReturnValue = SomeMethodWithLotsOfArguments(Argument1, Argument2,
Argument3, Argument4);
Run Code Online (Sandbox Code Playgroud)
我个人不喜欢这个选项,因为格式似乎在视觉上将参数列表与我试图调用的方法分开,特别是因为在新行上的orphanged参数正上方有一个赋值等号("=").
所以,有一段时间我采用了以下方法:
int SomeReturnValue = SomeMethodWithLotsOfArguments(Argument1,
Argument2,
Argument3,
Argument4);
Run Code Online (Sandbox Code Playgroud)
这里,参数都捆绑在一起,都在方法的第一个参数的一边.但是,一个问题是,由于选项卡缩进的空格数,参数列表不会总是在第二行中排列.(为格式化输入额外的空格会非常耗时.)
int SomeReturnValue = SomeMethodWithLotsOfArguments(
Argument1,
Argument2,
Argument3,
Argument4
);
Run Code Online (Sandbox Code Playgroud)
我实际上喜欢这种格式,因为它的视觉吸引力,但它也可以在视觉上将参数与列表所属的方法分开.另外,我更喜欢单个方法调用而不占用太多行.
所以,我的问题是,如果不首先考虑防止行代码过长的问题,你会如何推荐包装代码行?具体来说,当涉及长参数列表时,哪里是打破一行代码的好地方?
我见过的每个编码标准都对一行中的字符数有建议或绝对限制.在这个限制范围内有各种各样的工作方式,但我没有看到这方面的任何具体指导.
显然,如果可能的话,不要写过长的行.
但是,如果这不实用呢?如何处理长线?
这里有几个例子
if ($Stmt = $Mysqli->prepare("SELECT color, pattern, size,
manufacturer, mfgSku, storeLocation,
aisle, status
FROM tblItems WHERE ourSku = ?")) {
Run Code Online (Sandbox Code Playgroud)
要么
$flavors = array ('chocolate', 'strawberry', 'vanilla', 'cookie dough',
'chocolate chip', 'mint chocolate chip', 'rocky road',
'peach', 'fudge brownie', 'coffee', 'mocha chip');
Run Code Online (Sandbox Code Playgroud)
要么
$Stmt->bind_result( $this->_firstName,
$this->_lastName,
$this->_BillToAddress->address1,
$this->_BillToAddress->address2,
$this->_BillToAddress->city,
$this->_BillToAddress->state,
$this->_BillToAddress->zip,
$this->_BillToAddress->country,
$this->_email,
$this->_status,
$this->_primaryPhone,
$this->_mobilePhone );
Run Code Online (Sandbox Code Playgroud)
在每个示例中,冗长代码的缩进是不同的.这样做有更好或更"标准"的方式吗?额外的行总是应该以相同的方式缩进.或者这样可以吗?