可以在Java或C++中使用Python的缩进风格吗?
我喜欢Python的风格,因为它读起来和写起来都很简单。代码也更简洁,不需要像';'或者'{}'这些多余的符号。不过,我在工作中需要用到Java和C++。
我想知道有没有办法在这些语言中使用Python的缩进规则。也许有个插件可以在Notepad++或者Eclipse中实现这样的功能:
当我打开一个文件.java时,它能把Java的缩进规则改成Python的格式,这样我看起来更舒服。当我编辑并保存文件时,插件再把所有的';'和'{}'加上,这样JVM才能理解。
我想有些人可能会觉得这个主意很糟糕,但我只是想试试。在我看来,学习一种新语言很有趣,但学习新的缩进规则就显得无聊又没用。
2 个回答
虽然我不知道有没有这样的插件,但其实也不一定有个合理的方法来做到这一点。在C++中,有些情况下,循环没有内容是有意义的。分号的使用可以让人明白你的意图,如果没有分号,可能会让人觉得你漏掉了缩进。我觉得你可以使用这些额外的字符,习惯了之后会提高代码的可读性,尤其是如果你用的编辑器能高亮显示匹配的括号。
因为Java和C++允许你随意缩进代码,所以你可以像在Python中那样使用缩进。
为了完整性,这里有两个在C语言中没有内容的循环示例:
等待一个特殊的微控制器寄存器切换:
while(magicRegister==1);
复制C风格的字符串(注意,这可能会出错(溢出)):
while(*(strptrcpy++) = *(strptrsrc++));
你可以这么做,但这可能不是个好主意。遵循编程语言的规范可以让你和其他开发者更好地分享代码。如果把大括号换成制表符,任何想要修复你代码的C语言专业人士都会感到困惑。
不过,nobraces这个工具可以把制表符转换成大括号:
无论如何,我在嵌入式编程的项目中还是经常使用C语言,Tim Hatch的pybraces激发了我为C语言写一个类似的工具,让C语言也能使用Python风格的缩进。
还可以看看《Python如何影响我的C/C++大括号风格》,作者是Eli Bendersky。