Я наткнулся на следующий код и не мог понять, что происходит.
def self.eof_packet?(data) data[0] == ?\xfe && data.length == 5 end
? запускает символьный литерал .
?
\x начинает шестнадцатеричное экранирование .
\x
Шестнадцатеричное число FE, которое составляет 254
Это шестнадцатеричный символьный литерал. Вы также можете использовать 0xfe, что также работает для больших чисел (например, 0x100), которые не помещаются в байте.
0xfe
0x100