创建一次性使用的中间变量

时间:2019-10-02 06:10:45

标签: variables coding-style

我在某处读到,如果重用了变量,则应将其输入代码中。但是,当我编写代码以实现逻辑透明时,有时会创建仅使用一次的中间变量(其名称反映它们所包含的内容)。 这个概念有多不正确? PS: 我想做对。

1 个答案:

答案 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的“清洁代码”书。