Ruby 语言中有很多是方法而不是语法,所以我希望找到 %q
、%w
等,在 中定义为方法>内核
类。但是,它们不在那里。
那么它们是在哪里定义的呢?它们是语言关键字吗?
最佳答案
Programming Ruby在 chapter about strings 中提到它们.
与 %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"
很多 Ruby 的这些快捷方式的想法都来自 Perl,只有在 Perl 中他们使用 q{}
、qq{}
、qw{}
code>、qx{}
和 qr{}
。前导 q
代表“引用”,如果我没记错的话,它们被视为和记录为“引用”运算符。 Ruby 的文档需要扩展,这组特定的工具肯定需要一些帮助。
关于ruby - %q、%w 等在 Ruby 语言中的什么地方定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287503/