MST
星途 面试题库

面试题:Ruby字符串插值与格式化输出 - 中等难度

在Ruby中,有一个整型变量num = 10,一个字符串变量str = "world" ,请使用字符串插值和格式化输出两种方式,分别创建一个新的字符串,使其内容为:'Hello, world! The number is 10',并详细说明两种方式在使用场景上可能存在的差异。
25.8万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试

字符串插值方式

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

使用场景差异

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