Программирование Ruby упоминает их в главе о строках .
Относительно %q{}
и %Q{}
- это %{}
, что совпадает с %Q{}
. Кроме того, разделители "{}
", которые я показываю, могут быть совпадающей парой разделителей, поэтому вы можете использовать []
, ()
и т. Д. %q{}
аналогично использованию одинарных кавычек для разделения строки. %Q{}
аналогично использованию двойных кавычек, что позволяет интерполировать встроенные строки:
%q{foobar} # => "foobar"
%Q{foobar} # => "foobar"
asdf = 'bar' # => "bar"
%q{foo#{asdf}} # => "foo\#{asdf}"
%Q{foo#{asdf}} # => "foobar"
Кроме того, существует %w{}
, который разбивает строку, используя пробелы, в массив. Например:
%w[a b c] # => ["a", "b", "c"]
%w{}
не интерполирует встроенные переменные:
%w[a b asdf] # => ["a", "b", "asdf"]
%w[a b #{asdf}] # => ["a", "b", "\#{asdf}"]
И %r{}
, который определяет регулярное выражение:
%r{^foo}.class # => Regexp
Наконец, есть %x{}
, который действует как обратные метки, то есть "` `", передавая строку в базовую операционную систему. Думайте об этом как "exec":
%x{date} # => "Fri Nov 26 15:08:44 MST 2010\n"
Многие идеи Руби для этих ярлыков исходят из Perl, только в Perl они используют q{}
, qq{}
, qw{}
, qx{}
и qr{}
. Ведущий q
обозначает «цитата», и они обрабатываются и документируются как операторы «цитирования», если я правильно помню. Документация Ruby должна быть расширена, и этот конкретный набор инструментов может определенно использовать некоторую помощь.