在python中我可以做
_str = "My name is {}"
...
_str = _str.format("Name")
当我尝试时在红宝石中
_str = "My name is #{name}"
解释器抱怨变量名未定义,所以它期待
_str = "My name is #{name}" => {name =: "Name"}
如何在 ruby 中有一个字符串占位符供以后使用?
在python中我可以做
_str = "My name is {}"
...
_str = _str.format("Name")
当我尝试时在红宝石中
_str = "My name is #{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"