Привет всем Я просматривал некоторые исходные коды Java, когда я натолкнулся на это (java.lang.Character
):
public static boolean isHighSurrogate(char ch) {
return ch >= MIN_HIGH_SURROGATE && ch < (MAX_HIGH_SURROGATE + 1);
}
public static boolean isLowSurrogate(char ch) {
return ch >= MIN_LOW_SURROGATE && ch < (MAX_LOW_SURROGATE + 1);
}
Мне было интересно, почему автор добавил 1 к верхнему пределу и сделал меньше, чем сравнение, вместо того, чтобы просто сравнивать меньшее или равное?
Я могу понять, помогает ли читаемость, но в этом случае это не так.
Мне было интересно, какая разница между приведенным выше кодом:
public static boolean isHighSurrogate(char ch) {
return ch >= MIN_HIGH_SURROGATE && ch <= MAX_HIGH_SURROGATE;
}
public static boolean isLowSurrogate(char ch) {
return ch >= MIN_LOW_SURROGATE && ch <= MAX_LOW_SURROGATE;
}