Ruby 相当于 python 的 .format() 的字符串插值
Ruby string interpolation equivalent to python's .format()
在python我能做到
_str = "My name is {}"
...
_str = _str.format("Name")
在ruby时我尝试
_str = "My name is #{name}"
解释器抱怨变量 name 未定义,因此期待
_str = "My name is #{name}" => {name =: "Name"}
如何在 ruby 中添加一个字符串占位符供以后使用?
您可以使用延迟插值。
str = "My name is %{name}"
# => "My name is %{name}"
puts str % {name: "Sam"}
# => "My name is Sam"
Ruby 中的 %{} 和 % 运算符允许将字符串插值延迟到以后。 %{} 定义字符串中的命名占位符,% 将给定输入绑定到占位符。
解释器不需要散列,它需要一个名为 name
.
的变量
name = "Sam"
p str = "My name is #{name}" # => "My name is Sam"
% 方法可以像@rastasheep 演示的那样使用。可以用更简单的方式使用:
str = "My name is %s"
p str % "Name" # => "My name is Name"
根据前面的回答,为了简单和灵活,您可以使用 %s 代替 {}。如果您有多个未命名的占位符,请使用数组而不是字符串。
_str = "%s is a %s %s"
...
_str % %w(That nice movie) # => "That is a nice movie"
在python我能做到
_str = "My name is {}"
...
_str = _str.format("Name")
在ruby时我尝试
_str = "My name is #{name}"
解释器抱怨变量 name 未定义,因此期待
_str = "My name is #{name}" => {name =: "Name"}
如何在 ruby 中添加一个字符串占位符供以后使用?
您可以使用延迟插值。
str = "My name is %{name}"
# => "My name is %{name}"
puts str % {name: "Sam"}
# => "My name is Sam"
Ruby 中的 %{} 和 % 运算符允许将字符串插值延迟到以后。 %{} 定义字符串中的命名占位符,% 将给定输入绑定到占位符。
解释器不需要散列,它需要一个名为 name
.
name = "Sam"
p str = "My name is #{name}" # => "My name is Sam"
% 方法可以像@rastasheep 演示的那样使用。可以用更简单的方式使用:
str = "My name is %s"
p str % "Name" # => "My name is Name"
根据前面的回答,为了简单和灵活,您可以使用 %s 代替 {}。如果您有多个未命名的占位符,请使用数组而不是字符串。
_str = "%s is a %s %s"
...
_str % %w(That nice movie) # => "That is a nice movie"