2011-03-14 6 views
22

については、drying up cucumber testsについてはAslak suggestsです。%{}はRubyで何をしますか?

私は引用符をたくさん持っているとき、私はこれを好む:ある何%{私は、「ユーザー名」に「#{User.first.usernameを}」と入力します}

を考えると

%{CONTENT}というコンストラクト?誰かがそれをいくつかの文書で参考にしていますか?私はそれを調べる方法については分かりません。

%Qについての情報もあります。それはちょうど%と同等ですか?中括弧は何ですか?角カッコを使用できますか?彼らは異なって機能しますか?

最後に、#{<ruby stuff to be evaluated>}というコンストラクトは何ですか?それはどこかのドキュメントにも参考になりますか?

答えて

14
  1. "パーセントリテラル" は、通常いくつかの情報をGoogleに良い方法です:

  2. #{} "文字列補間" と呼ばれています。

+0

それらのいずれかが、 '%{'考える% 'で{私は、「ユーザー名」に「#{User.first.usernameを}」と入力します}'私は「couldnないと説明している場合それを見つける。 '%{'はキュウリDSLの誤植ですか? –

+2

二重引用符で囲まれた文字列に相当しますが、二重引用符をエスケープする必要はありません。( "与えられた"と仮定して\ "username \" username \ "\ {User.first.username} \" 。 –

+1

パーセントリテラルについて知っておけば、開始文字と終了文字はほとんど何でもかまいませんので、 '%{Some text}'、 '%[Some text]'だけでなく '%#Some text#'と '% ' text''やさらに '%% Some text% ' –

8

#{1+1}String Interpolationと呼ばれます。

IとWikibooksについては、%のものを「%表記法」として参照してください。 Reference here%表記では、英数字以外の任意の区切り記号を使用します。また、修飾子(正規表現のオプションのようなもの)を取ることもできます。興味深いことに、#{}スタイルの文字列補間を許可するかどうかです(これもデフォルトで有効になっています)。

%次に、初心者にわかりにくい場合は、その表記にいくつかの異なる表記を付けます。たとえば、%w{hello world}は配列['hello','world']を返します。 %s{hello}は、シンボル:helloを返します。

5

上記の回答のいずれも実際に質問に答えていません。

これはパーセント記号表記です。パーセント記号は、次の文字がリテラル区切り文字であることを示し、任意の(英数字以外の)任意の文字を使用できます。たとえば:

%{stuff} 
%[stuff] 
%?stuff? 

などこれは、あなたがエスケープせずに文字列に二重引用符、単一引用符などを配置することができます:埋め込まれた「バズと FOO = 'バー:

%{foo='bar with embedded "baz"'} 

はリテラル文字列を返します。 "'

パーセント記号のあとに文字修飾子を付けると、文字列の補間方法が決まります。

詳細はこちらです:Wikibooks

関連する問題