Ответ 1
?
используется для представления литералов с одиночной символьной строкой. Как ?a
, ?b
, но не ?ab
.
Чтобы ответить comment OP:
Да, они есть.
irb(main):001:0> ?x + 'y'
=> "xy"
irb(main):002:0> 'x' + 'y'
=> "xy"
Я просто наткнулся на этот фрагмент кода:
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 '?'
Что означает ?
?
?
используется для представления литералов с одиночной символьной строкой. Как ?a
, ?b
, но не ?ab
.
Чтобы ответить comment OP:
Да, они есть.
irb(main):001:0> ?x + 'y'
=> "xy"
irb(main):002:0> 'x' + 'y'
=> "xy"
В 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"
$> "/" == ?/
=> true
другая версия строки, но короче:)
also true: %{/}