5

Pythonで私ができること

_str = "My name is {}"
...
_str = _str.format("Name")

Rubyで試してみると

_str = "My name is #{name}"

インタープリターは、変数が未定義であると不平を言うので、期待しています

_str = "My name is #{name}" => {name =: "Name"}

後で使用するためにルビーで文字列プレースホルダーを作成するにはどうすればよいですか?

4

3 に答える 3

16

遅延補間を使用できます。

str = "My name is %{name}"
# => "My name is %{name}"

puts str % {name: "Sam"}
# => "My name is Sam"

Ruby の %{} および % 演算子を使用すると、文字列補間を後まで遅らせることができます。%{} は文字列内の名前付きプレースホルダーを定義し、% は指定された入力をプレースホルダーにバインドします。

于 2015-03-20T17:20:19.037 に答える
0

前の回答に基づいて、単純さと柔軟性のために {} の代わりに %s を使用できます。名前のないプレースホルダーが複数ある場合は、文字列の代わりに配列を使用します。

_str = "%s is a %s %s"
...
_str % %w(That nice movie)  # => "That is a nice movie"
于 2016-04-12T11:18:05.717 に答える