一些代码风格的工具推荐这样做,我记得看到一些UNIX命令行工具警告缺少空行。
空行多余的原因是什么?
\n\n
)还是换行\n
?
cat
文件放在外壳上,您会知道为什么。如果您的文件使我的shell提示符出现在应有的提示符之外(在行首),我可能会恨您。;)
一些代码风格的工具推荐这样做,我记得看到一些UNIX命令行工具警告缺少空行。
空行多余的原因是什么?
\n\n
)还是换行\n
?
cat
文件放在外壳上,您会知道为什么。如果您的文件使我的shell提示符出现在应有的提示符之外(在行首),我可能会恨您。;)
Answers:
如果文本文件中的最后一行数据没有以换行符或回车符/换行符终止,则许多较旧的工具将无法正常工作。他们忽略该行,因为它以^ Z(eof)终止。
\n
)。一些文本编辑器(例如Vim)和一些编译器(尤其是C ++和Python)将发出警告。(在C ++的情况下,标准明确规定了这一点。)
\n\n
。
除了在文本编辑器中移至文件末尾时它具有更好的光标位置这一事实。
在文件末尾使用换行符可以简单地检查文件是否被截断。
如果您按照与为什么列表中允许尾随逗号相同的理由将其追加到文件,则也可以为更清晰的差异提供参数。
从链接的资源中复制了以下内容(并进行了一些修整):
变更:
s = [
'manny',
'jack',
]
至:
s = [
'manny',
'jack',
'roger',
]
仅涉及差异的单行更改:
s = [
'manny',
'jack',
+ 'roger',
]
当省略尾部逗号时,这击败了更令人困惑的多行差异:
s = [
'manny',
- 'jack'
+ 'jack',
+ 'roger'
]
出现文件末尾的空行,以便从输入流中进行标准读取将知道何时终止读取,通常返回EOF表示您已到达末尾。大多数语言都可以处理EOF标记。正是出于这个原因,在DOS下,EOF标记是F6键或Ctrl-Z,对于* nix系统,它是Ctrl-D。
大多数(如果不是全部)实际上将一直读取到EOF标记,以便运行时库从输入读取的功能将知道何时停止进一步读取。当您为附加模式打开流时,它将擦除EOF标记并将其写入,直到显式调用close,然后在该位置将EOF标记插入。
较早的工具期望空行后跟EOF标记。如今,工具可以处理空行并忽略它。
某些语言根据输入行来定义其输入文件,其中每个输入行都是由回车符终止的一系列字符。如果这样定义了它们的语法,那么文件的最后一个有效行也必须由回车符终止。