我要查找的文档 FileUtils。我很困惑的以下行︰

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

%w是什么意思?您是否可以指向我的文档?

2009-08-13 21:23:47
问题评论:

回答:

%w(foo bar)["foo", "bar"]的快捷方式。意味着它是一个符号编写由空格而不是逗号,也不在其周围的引号分隔的字符串的数组。您可以找到方法在zenspider 的指南编写文本的列表.

此外,括号可以是几乎任何其他字符如方括号 %w [...] 花括号 %w {...} 或甚至类似感叹号标记 %w !...!所有这些具有相同的行为 (返回一个数组)。

Mnemonically 请记住,这意味着最简单的方法是"空白 (w) 分隔数组"。

请参见"常规分隔输入"这里ruby-doc.org/docs/ProgrammingRuby/html/language.html

如果字符串包含空格,刚刚逃过它们。例如︰ %w(ab c def) # => ["ab c", "def"]

推测此页会这么解决这个问题,太︰ ruby-doc.org/core-2.0/doc/syntax/...

我认为作为"单词数组" %w() -由空格分隔这些元素。

有其他 %原义字符︰

  • %r()是另一种方式来编写正则表达式。
  • %q()是另一种方式来编写一个单引号的字符串 (和可以是多行,此命令很有用)
  • %Q()提供了一个双引号括起来的字符串
  • %x()是一个外壳程序命令
  • %i()给出的符号数组 (红宝石 > = 2.0.0)
  • %s()将转换为一个元件foo (:foo)

我不知道任何其他人,但可能有一些潜伏在周围在那里...

从 Ruby 2.0.0 起也可以使用%i()来生成一个数组的符号

截至 Lisp 1 (~ 1962) 可以使用(a b c)以生成符号的列表。

另外,还有%() (或%[]%{}) 其中给出了一个双精度值用引号括起来的字符串和转义双引号括起来,如%Q()例如%("sender name" <sender@example.com>) # => ""sender name" <sender@example.com>"

另外,还有%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...

%W%w可以不用引号和逗号而创建的字符串数组。

%W%w 之间的差异,请参见stackoverflow.com/questions/690794/ruby-arrays-w-vs-w

虽然此链接可能回答这些问题,最好包括这里的答案的关键部件,并提供链接供参考。只链接的答案可能会变得无效,如果更改了链接的页面。

因此,虽然是旧的开机自检、 问题不断,答案总是看起来不够清楚我,这里是我的想法︰

%w%W属于常规分隔符号输入类型,相关的数组。还有其他类型,包括%q%Q%r%x%i.

大写和小写版本之间的区别是,它使我们可以访问功能的单引号和双引号。使用单引号和 (小写) %w,我们有没有代码插值 (#{someCode}) 和有限的范围的工作的转义字符 ( )。使用双重引号和 (大写)%W我们是否有权访问这些功能。

使用分隔符可以是任意字符,而不仅仅是左括号。遇上可以看到,实际上,上面的例子的。

完全写上与%w和完整列表的示例,用于转义字符和分隔符,去看看"Ruby-%w vs %w – 机密泄露 !"

内容来源于Stack Overflow What does %w(array) mean?
请输入您的翻译

What does %w(array) mean?

确认取消