ruby - %q、%w 等在 Ruby 语言中的什么地方定义?

标签 ruby

Ruby 语言中有很多是方法而不是语法,所以我希望找到 %q%w 等,在 中定义为方法>内核类。但是,它们不在那里。

那么它们是在哪里定义的呢?它们是语言关键字吗?

最佳答案

Programming Rubychapter 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/

相关文章:

ruby-on-rails - 在 Rails 中,如何删除数组中的所有对象?

javascript - 如何将 mobx 与 React Rails 结合使用?

Ruby Kernel.raise 方法在将参数括在括号中时抛出错误

ruby-on-rails - 用于 ruby​​ on rails 的 OrientDB 集成

ruby-on-rails - 无法在 Heroku 上部署基本的 Rails 应用程序

ruby - 为什么这些字符串表达式打印的结果不同?

ruby - 如何在 Ruby 中使用 RSpec 模拟 Pusher?

arrays - ruby ,传统知识库。 getopenfile 的输出

ruby - 当 shell 环境不存在时,如何使用 RVM 从特定的 Ruby 版本运行 "bundle exec"

ruby-on-rails - 为 PostgreSQL GENERATED ALWAYS AS 列创建 Rails 迁移