“==0”与“<1”的偏好
Preference for "==0" vs. "<1"
我在 Java 中写了一个方法来确定给定年份是否为闰年。这是写的方法:
public static boolean isLeapYear (int year) {
return year <= 9999 && year > 0 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
但是,我注意到 IntelliJ 最初通过将“== 0”的所有实例替换为“< 1”来纠正我的冗余逻辑。在上面的示例中,我已将它们改回“==0”。
在代码简单性或清晰性方面,是否存在某种偏好?似乎更简单的版本是 "equals 0" 因为它比简单的 "less than 1."
更精确
不确定是否有关于此的约定,或者在任何给定情况下您是否更愿意使用 <1 而不是 ==0 的原因。
谢谢!
清晰是您的指导原则:使用 == 0
和 != 0
。
这两个选项 有效 可以互换,因为在你的情况下余数不能小于零,但是 == 0
和 != 0
更容易阅读,更接近他们的自然语言意义 "has a remainder of zero" 等,而且它是行业惯例。
没有"performance"区别。
我在 Java 中写了一个方法来确定给定年份是否为闰年。这是写的方法:
public static boolean isLeapYear (int year) {
return year <= 9999 && year > 0 && year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
但是,我注意到 IntelliJ 最初通过将“== 0”的所有实例替换为“< 1”来纠正我的冗余逻辑。在上面的示例中,我已将它们改回“==0”。
在代码简单性或清晰性方面,是否存在某种偏好?似乎更简单的版本是 "equals 0" 因为它比简单的 "less than 1."
更精确不确定是否有关于此的约定,或者在任何给定情况下您是否更愿意使用 <1 而不是 ==0 的原因。
谢谢!
清晰是您的指导原则:使用 == 0
和 != 0
。
这两个选项 有效 可以互换,因为在你的情况下余数不能小于零,但是 == 0
和 != 0
更容易阅读,更接近他们的自然语言意义 "has a remainder of zero" 等,而且它是行业惯例。
没有"performance"区别。