char_x <(char_y + 1) == char_x <= char_y?

Привет всем, я просматривал некоторые из Исходный код 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;
}
11
задан Pacerier 20 November 2011 в 20:13
поделиться