違いはなんですか?
違いはなんですか?
回答:
%wは一重引用符のように引用します''
(変数補間なし、エスケープシーケンスが少ない)、%Wは二重引用符のように引用します""
。
irb(main):001:0> foo="hello"
=> "hello"
irb(main):002:0> %W(foo bar baz #{foo})
=> ["foo", "bar", "baz", "hello"]
irb(main):003:0> %w(foo bar baz #{foo})
=> ["foo", "bar", "baz", "\#{foo}"]
#
。'#{foo}'
そして"\#{foo}"
あなたがして確認することができ、同じ文字列を、与える'#{foo}' == "\#{foo}"
中をirb
。
古い投稿ですが、質問が増え続け、答えが常にはっきりとはわかりません。だから、ここに私の考えです。
%wと%Wは、配列に関連する一般的な区切られた入力タイプの例です。%q、%Q、%r、%x、%iを含む他のタイプがあります。
大文字と小文字の違いは、単一引用符と二重引用符の機能にアクセスできることです。単一引用符と小文字の%wを使用すると、コードの補間(#{someCode}など)がなく、機能するエスケープ文字の範囲が限定されます(\、\ nなど)。二重引用符と大文字%で、私たちは、W んこれらの機能へのアクセス権を持っています。
使用される区切り文字は、左括弧だけでなく、任意の文字にすることができます。上記の例を試して、効果があることを確認してください。
%wの例と完全なリスト、エスケープ文字と区切り文字を含む完全な説明については、http://cyreath.blogspot.com/2014/05/ruby-w-vs-w-secrets-revealedをご覧ください。 .html
マーク
%w&readable af&