PEP8 与 C++
我是一个学生党,主要是学习 Python。后来开始学Java、C 和 C,然后遇到了一个问题:
因为我写 Python 代码的时候都遵守 PEP8 规则,然后就和 C 语法冲突了亿些
1、分号
写完上面的回复后,我意识到一些问题。
为什么 Python 和 Go 可以省略这些括号?
Python 的原因很简单,for
、if
和 while
的起始语句都以 :
结尾,所以能够区分起始语句和它们的语句块。
Go 我并不熟悉,查了一下语言规范,在 Go 中,大括号是强制使用的:
if <simple-stmt> expression {
...
}
所以 if
后的起始语句和语句块也能够区分开来。
C 和类 C 语言就不同了,它们的起始语句必须有括号,但语句块可以没有大括号。在 C++ 中,对于以下语句:
for (;;i++) 1;
去掉括号就难以分辨语法成分了。
所以实际上这是一个二选一的问题,总要有一个界定符存在的。