Что означает?/Означает в Ruby?

Я просто наткнулся на этот фрагмент кода:

if source[0] != ?/
  source = compute_asset_path(source, options)
end

Что это за "?/"? Я никогда не видел таких строк.

$ irb
2.0.0p247 :001 > ?/
=> "/" 

По-видимому, он работает только для одиночных символов:

2.0.0p247 :001 > ?a
 => "a" 
2.0.0p247 :002 > ?foo
SyntaxError: (irb):2: syntax error, unexpected '?'

Что означает ??

Ответ 1

? используется для представления литералов с одиночной символьной строкой. Как ?a, ?b, но не ?ab.

Чтобы ответить comment OP:

Да, они есть.

irb(main):001:0> ?x + 'y'
=> "xy"
irb(main):002:0> 'x' + 'y'
=> "xy"

Ответ 2

В Ruby 1.8.x серия возвращает значение ASCII

[email protected]:~$ rvm use ruby-1.8.7-p370
Using /home/alok/.rvm/gems/ruby-1.8.7-p370
[email protected]:~$ irb
1.8.7-p370 :001 > ?F
 => 70 

В Ruby 1.9+ он возвращает ту же строку символов

1.9.2-p320 :018 > ?A
 => "A" 

Ответ 3

$>  "/" == ?/ 
=> true

другая версия строки, но короче:) also true: %{/}