1

我喜欢 Python 风格,因为它易于阅读和编写。使代码更短,避免不必要的字符,如';' 或者 '{}'。但是,我需要在工作中使用 Java 和 C++。

我想知道是否有办法在这些语言中使用 Python 缩进规则。也许存在 Notepad++ 或 Eclipse 的插件,它会做这样的事情:

当我打开 file.java 时,更改 Java 缩进规则并使用 Python 规则格式化文件,以便我更容易阅读。当我编辑并保存它时,插件会添加所有的 ';' 和'{}'再次让JVM理解。

我想你们中的一些人会认为这是一个糟糕的想法,但我只是想尝试一下。在我看来,学习一门新语言很有趣,但学习新的缩进规则只是无聊和无用的。

4

2 回答 2

6

你可以这样做,但这可能是个坏主意。坚持语言约定可以让您与其他开发人员共享代码。用制表符切换大括号会使任何想要修补代码的 C 专业人士感到困惑。

话虽如此,nobraces将制表符转换为大括号:

无论如何,我仍然在嵌入式编程合同中大量使用 C,并且 Tim Hatch 的 pybraces 启发我为 C 编写一个类似物,它为您提供 Python 风格的 C 缩进。

另请参阅Eli Bendersky 的Python 如何影响我的 C/C++ 大括号样式。

于 2013-02-21T10:17:37.833 回答
0

虽然我不知道任何这样的插件,但不一定有一种理智的方法可以做到这一点。在某些情况下,没有主体的循环在 cpp 中是有意义的。分号清楚地表明了意图,如果没有它,它可能看起来像一个缺失的标识。我认为你应该只使用额外的字符,如果你习惯了它们会增加可读性,特别是如果你有一个突出匹配(对应的开始和结束)大括号/括号的编辑器。

既然 Java 和 cpp 让您可以随意缩进代码,您仍然可以使用类似于 python 中的标识。

为了完整起见,在 c 中没有主体的循环的两个示例:

等待特殊的微控制器寄存器切换:

while(magicRegister==1);

复制 c 风格的字符串(小心这很容易出错(溢出)):

while(*(strptrcpy++) = *(strptrsrc++));
于 2013-02-21T10:22:51.677 回答