2011-11-11 6 views
0

私は過去に?の使用を見ましたか?これを行うための文字。しかし、実際に何が実際に呼び出されているのかわからないため、インターネット上で例を見つけることはできません。Rubyで位置置換を行うにはどうしたらいいですか?

"? ? ?" % ['A','B','C'] 

利回り:

"A B C" 

は私がやろうとしているものです。

答えて

1

これは、文字列の補間と呼ばれています。

"%s %s %s" % %w{A B C} 

詳しくは、thisを参照してください。

2

あなたの質問は明確ではありません。

> "%s %s %s" % ['A', 'B', 'C'] 
=> "A B C" 

をあなたもポジションを台無しにしたい場合は、次のようなことを行うことができます:

>> "%3$s %1$s %2$s " % ['A', 'B', 'C'] 
=> "C A B " 
あなただけの変数置換様 printfを行いたい場合はデイブがお見せしたように、あなたはそれを行うことができます

か:

>> "%1$s %1$s %2$s %3$s" % ['A', 'B', 'C'] 
=> "A A B C" 

あなたが最も可能性が高いのActiveRecordクエリの文脈にあった覚え?の使用。これはRails特有ですが、Rubyではうまく動作しません。

+0

実際には、Races固有のものだけでなく、SQLプレースホルダ(Railsだけでなく)には '?'がかなり標準的です。 Rubyではうまくいかないという事実は変わりません。 :) –

0

ルビーでを['A', 'B', 'C']から取得する最も良い方法はおそらく['A', 'B', 'C'].join ' 'です。しかし、一般的なケースでは、String#%は他のものが記述しているように置換を行います(形式形式文字列を使用)。その方法についてのドキュメントを確認し、Kernel.sprintfを確認してください。

関連する問題