Ruby字符串替换

MxL*_*evs 18 ruby

不知道这个术语叫什么(替换?),但是在python中你输入

num1 = 4  
num2 = 2  
print("Lucky numbers: %d %d" %(num1, num2))
Run Code Online (Sandbox Code Playgroud)

你得到"幸运数字:4 2"

我如何在ruby中执行此操作?

试图做上面的场景,如果我有一个变量,它可以工作,但如果我需要在多个变量中,则括号不是有效的语法.

Hun*_*len 28

您可以在Ruby中使用称为字符串插值的东西来实现此目的.

例如:

num1 = 4  
num2 = 2  
puts "Lucky numbers: #{num1} #{num2}";
Run Code Online (Sandbox Code Playgroud)

这里#in}内的每个变量都不是解释为String而是解释为变量名,并且值被替换.

  • 也许我正在寻找的是格式。我只是希望能够创建这样的字符串,然后将它们传递给其他方法 (2认同)

ste*_*lag 24

num1 = 4  
num2 = 2  
print "Lucky numbers: %d %d" % [num1, num2]
Run Code Online (Sandbox Code Playgroud)


Phr*_*ogz 6

n1, n2 = 17, 42
puts "Lucky single number: %d" % n1
puts "Lucky multiple numbers: %d %d" % [ n1, n2 ]
puts "Lucky inline interpolation: #{n1} #{n2}"
Run Code Online (Sandbox Code Playgroud)

有关String#%阅读方法中允许的格式的文档Kernel#sprintf.


Nat*_*teW 5

您还可以使用哈希进行字符串替换。如果您有多个需要替换为相同字符串的实例,这将非常有用。

p "%{foo} == %{foo}" % {:foo => "bar" }
# => "bar == bar"
Run Code Online (Sandbox Code Playgroud)