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