在代码的中间层声明局部变量是否合适?

L.Z*_*Zak 2 java coding-style

在阅读《干净的代码》一书时,我遇到了以下说明:

\n\n

“局部变量\n应该在其第一次使用的上方声明,并且应该有一个小的垂直范围。我们\ndon\xe2\x80\x99不希望声明的局部变量距离其用法数百行。”

\n\n

请参见以下示例:

\n\n
 public class A {\n\n    public static void main(String[] args)  {\n\n        String name = "Robert";\n        String country = "iiiii";\n        int age = 21;\n        String hobby = "Soccer";\n        System.out.println("my name is "+name+"I\'m "+age+" and I\'m from "+country);\n        /*\n\n             * \n             * a lot of code here\n             * \n             * */\n            System.out.println("my hobby is: " + hobby);\n\n        }\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里变量的爱好是它的用法的一个障碍,所以我想确定像下面的代码那样编写是否干净?,因为我经常看到在函数顶层声明的局部变量:

\n\n
/*the previous code here*/\nString hobby = "Soccer";\nSystem.out.println("my hobby is: " + hobby);\n
Run Code Online (Sandbox Code Playgroud)\n

Ste*_*n C 5

当我们谈论局部变量时,这本书所说的一般规则是正确的。

重点是,如果将变量的声明和使用紧密结合在一起,代码往往会更具可读性。如果它们相距很远,您可能会发现自己需要向后扫描许多行才能找到声明。这会分散你的注意力。

(现代 IDE 有巧妙的方法来显示变量的类型,或者转到其声明。但是,如果您可以在同一“页面”上查看声明和用法,那就更容易了。)

话虽如此,这在某种程度上是个人喜好的问题。有些人喜欢“在顶部声明变量”,因为一些老派的编程语言不允许声明和其他语句散布。