回答:
%w(foo bar)のショートカットです["foo", "bar"]。つまり、コンマの代わりにスペースで区切られ、引用符で囲まれていない文字列の配列を記述する表記法です。あなたはzenspiderのquickrefでリテラルを書く方法のリストを見つけることができます。
%w(ab\ c def) # => ["ab c", "def"]
                    私%w()は「単語の配列」と考えています-要素はスペースで区切られ、文字列の配列を返します。
他に%リテラルがあります:
%r() 正規表現を記述するもう1つの方法です。%q() 単一引用符で囲まれた文字列を書くもう1つの方法です(複数行にすることもでき、便利です)。%Q() 二重引用符で囲まれた文字列を与える%x() シェルコマンドです%i() シンボルの配列を与える(Ruby> = 2.0.0)%s()foo記号に変わります(:foo)他には知りませんが、そこに潜んでいる人がいるかもしれません...
%i()では、シンボルの配列の生成にも使用できます。
                    %()(または%[]or %{})もあり%Q()ます。例%("sender name" <sender@example.com>) # => "\"sender name\" <sender@example.com>"
                    古い投稿ですが、質問が増え続け、答えがいつもはっきりとは分かりません。そこで、私の考えは次のとおりです。
%wおよび%W一般的な区切られた入力タイプの例です、配列に関連する。含む他の種類があり%q、%Q、%r、%xとは%i。
大文字と小文字のバージョンの違いは、単一引用符と二重引用符の機能にアクセスできることです。一重引用符と(小文字)%wを使用すると、コード補間はありません(#{someCode})、機能するエスケープ文字の範囲が限定されます(\\、\n)。二重引用符と(大文字)で%W、我々はない、これらの機能へのアクセス権を持っています。
使用される区切り文字は、左括弧だけでなく、任意の文字にすることができます。上記の例を試して、効果があることを確認してください。
完全な例%wと完全なリスト、エスケープ文字と区切り文字を使った完全な記事については、「Ruby-%wと%Wの比較-秘密が明らかになった!」をご覧ください。
代わりに%w()私たちが使用する必要があります%w[]
Rubyスタイルガイドによると:
単語の配列(スペースや特殊文字を含まない空でない文字列)が必要な場合は、リテラル配列構文より%wを優先してください。このルールは、2つ以上の要素を持つ配列にのみ適用します。
# bad
STATES = ['draft', 'open', 'closed']
# good
STATES = %w[draft open closed]さまざまな種類のパーセントリテラルに最も適した中括弧を使用します。
[]配列リテラル(%w, %i, %W, %I)は、標準の配列リテラルと揃えられるため。
# bad
%w(one two three)
%i(one two three)
# good
%w[one two three]
%i[one two three]詳しくはこちらをご覧ください。
http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Stringsにあるパーセント文字列のドキュメントからの抜粋:
文字列を作成する%(...)の他に、%は他のタイプのオブジェクトを作成する場合があります。文字列と同様に、大文字は補間とエスケープ文字を許可し、小文字は無効にします。
これらはルビーのパーセント文字列のタイプです:
...
%w:文字列の配列
ユーザーのフルネームのCSVスプレッドシートから一連の列を受け取り、スペースを含めてフォーマットを維持する必要がありました。rubyを使用しているときに私が見つけた最も簡単な方法は、次のとおりです。
names = %( Porter Smith
Jimmy Jones
Ronald Jackson).split('\n')これ%()により、のような文字列が作成さ"Porter Smith\nJimmyJones\nRonald Jackson"れ、配列を取得するsplitには、"\n" ["Porter Smith", "Jimmy Jones", "Ronald Jackson"]
したがって、OPの元の質問にも答えるには、最終的な配列出力にを存在させたい%(cgi\ spaeinfilename.rb;complex.rb;date.rb).split(';')場合があるのであれば、彼らが書いた可能性があります。spacespace