Ruby 字符串插值
字符串插值,它是关于将字符串组合在一起,但不是通过使用+运算符。字符串插值只有在我们使用双引号 ( ” “) 来形成字符串时才起作用。字符串插值提供了一种处理字符串字面的简单方法。字符串插值指的是在一个给定的字符串中用尊重的值来替换定义的变量或表达式。这就是字符串插值的工作方式,它执行任何可执行的东西。让我们看看如何执行数字和字符串。
语法
#{variable}
上面的语法指定 {} 里面的东西是可执行对象或变量。下面是一些理解的例子:
例子:
# Ruby Program of String Interpolation
a = 1
b = 4
puts "The number #{a} is less than #{b}"
输出:
The number 1 is less than 4
例子
# Ruby Program of String Interpolation
s = 'Groot';
n = 16
# takes this as entire new string
puts "s age = n";
# interpolation
puts "#{s} age=#{n}";
# if number not converted to string throws an error
puts s+" age="+n.to_s;
输出
s age=n
Groot age=16
Groot age=16
所以,唯一的好处是,我们不必将数字转换为字符串,因为Ruby已经处理好了。在字符串连接中,如果我们要连接像(”hela “+string+”puri”)这样的字符串,它会创建3个字符串对象,它从右到左移动,首先创建 “puri “对象1,+方法将 puri 与现有字符串粘在一起并返回 weds puri 对象2,这再次被+方法粘住,形成最后的 hela weds puri 对象3。最终,在这个过程中创建的对象(1,2)被终止,因为它们没有任何用处。在字符串插值中,它只为(”hela “+string+” puri”)创建一个对象,并将现有的字符串(weds)嵌入其中。在这两种情况下,最后都会创建一个对象,但为什么更喜欢插值而不是串联。有两个原因,不需要额外的数据类型转换为字符串,Ruby已经解决了这个问题,而且这个过程是大多数开发者都喜欢使用的。
转义序列
字符串不仅可以包含文本。它们也可以包含控制字符。单引号和双引号的区别在于,双引号允许转义序列,而单引号不允许转义序列。
例如
# Ruby program of string Interpolation
puts 'guardians\nGroot';
# gets executes and prints Groot on a newline.
puts "guardians\nGroot";
# takes care of control characters.
puts "hela\nweds\tpuri";
输出
guardians\nGroot
guardians
Groot
hela
weds puri
在上面的例子中,\n是转义序列,代表 “换行 “字符。