Ruby字符串插值相当于python的.format()

Sam*_*amy 4 ruby string language-comparisons string-interpolation

在python我能做到

_str = "My name is {}"
...
_str = _str.format("Name")
Run Code Online (Sandbox Code Playgroud)

在红宝石中,当我尝试

_str = "My name is #{name}"
Run Code Online (Sandbox Code Playgroud)

解释器抱怨变量是未定义的,所以它是期望的

_str = "My name is #{name}" => {name =: "Name"}
Run Code Online (Sandbox Code Playgroud)

如何在ruby中使用字符串占位符供以后使用?

ras*_*eep 14

您可以使用延迟插值.

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

puts str % {name: "Sam"}
# => "My name is Sam"
Run Code Online (Sandbox Code Playgroud)

Ruby中的%{}和%运算符允许延迟字符串插值,直到稍后.%{}在字符串中定义命名占位符,%将给定输入绑定到占位符.