Что такое двойной знак вопроса? Никогда не видел этого раньше.
Ответ 1
Ruby 1.8 имеет синтаксис? -prefix, который превращает символ в его кодовое значение ASCII. Например, ?a - это значение ASCII для буквы a (или 97). Выбранный двойной вопросительный знак - это просто номер 63 (или значение ASCII для ?).
В Ruby 1.9 синтаксис ?a возвращает сам символ (как и синтаксис квадратной скобки для строк):
?? # => "?"
"What?"[-1] # => "?"
Ответ 2
Как говорит Райан, префикс ? дает вам значение ASCII символа. Причина, по которой это полезно в этом контексте, заключается в том, что при использовании нотации индекса в строке в Ruby 1.8 вместо символа возвращается значение ASCII. например.