字符串插值方式
num = 10
str = "world"
new_str = "Hello, #{str}! The number is #{num}"
puts new_str
格式化输出方式
num = 10
str = "world"
new_str = "Hello, %s! The number is %d" % [str, num]
puts new_str
使用场景差异
- 字符串插值:
- 简单直观:适用于简单的、临时性的字符串构建,当字符串中嵌入变量的逻辑较为简单,不需要复杂的格式化规则时,字符串插值代码简洁易读。例如在日志记录或者简单的输出反馈场景中,快速将变量值嵌入到字符串中。
- 灵活性高:在Ruby中,插值中可以嵌入任何有效的Ruby表达式,不局限于简单的变量,如
"The result is #{2 + 3}"
。
- 格式化输出:
- 复杂格式化:当需要对嵌入的变量进行复杂格式化时更适用,例如对数字进行指定宽度、精度等格式化,对字符串进行对齐等操作。比如
"The number is %05d" % 10
可以将数字10格式化为宽度为5,不足部分用0填充的字符串 "00010"
。
- 兼容性:在一些需要与其他语言格式化风格兼容,或者代码风格统一要求使用格式化字符串的场景下更合适,因为其格式化语法与C语言等类似,便于熟悉不同语言的开发者理解和维护。