我在某处读到,如果重用了变量,则应将其输入代码中。但是,当我编写代码以实现逻辑透明时,有时会创建仅使用一次的中间变量(其名称反映它们所包含的内容)。 这个概念有多不正确? PS: 我想做对。
答案 0 :(得分:1)
重要的是要注意,在大多数情况下,时间的清晰性要优先于可重用性或简洁性。这是干净代码的基本原理之一。无论如何,大多数现代编译器都会优化代码,因此根本不必担心创建新变量。
如果可以增加代码的清晰度,则可以创建一个新变量。确保给它起一个有意义的名字。考虑以下功能:
public static boolean isLeapYear(final int yyyy) {
if ((yyyy % 4) != 0) {
return false;
}
else if ((yyyy % 400) == 0) {
return true;
}
else if ((yyyy % 100) == 0) {
return false;
}
else {
return true;
}
}
即使布尔表达式仅使用一次,但它们可能会使代码的阅读者感到困惑。我们可以将其重写如下
public static boolean isLeapYear(int year) {
boolean fourth = year % 4 == 0;
boolean hundredth = year % 100 == 0;
boolean fourHundredth = year % 400 == 0;
return fourth && (!hundredth || fourHundredth);
}
这些布尔变量为代码增加了清晰度。
此示例摘自Robert C. Martin的“清洁代码”书。