协慌网

登录 贡献 社区

%w(数组)是什么意思?

我正在查看 FileUtils 的文档。我对以下几行感到困惑:

FileUtils.cp %w(cgi.rb complex.rb date.rb), '/usr/lib/ruby/1.6'

%w是什么意思?你能指点我的文件吗?

答案

%w(foo bar)["foo", "bar"]的快捷方式。这意味着它是一种表示字符串数组的符号,这些字符串由空格而不是逗号分隔,并且没有引号。您可以在zenspider 的 quickref 中找到编写文字的方法列表。

我认为%w()是一个 “字数组” - 元素由空格分隔,它返回一个字符串数组。

还有其他%文字:

  • %r()是编写正则表达式的另一种方法。
  • %q()是另一种编写单引号字符串的方法(可以是多行的,这很有用)
  • %Q()给出一个双引号字符串
  • %x()是一个 shell 命令
  • %i()给出一个符号数组(Ruby> = 2.0.0)
  • %s()foo变成符号( :foo

我不认识任何人,但可能有一些潜伏在那里......

还有%s允许您创建任何符号,例如:

%s|some words|          #Same as :'some words'
%s[other words]         #Same as :'other words'
%s_last example_        #Same as :'last example'

从 Ruby 2.0.0 开始,您还拥有:

%i( a b c )   # => [ :a, :b, :c ]
%i[ a b c ]   # => [ :a, :b, :c ]
%i_ a b c _   # => [ :a, :b, :c ]
# etc...