Ruby怎么将变量合并到一个字符串中?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我正在寻找一种更好的方法,在Ruby中将变量合并到字符串中。

例如,如果字符串类似于:

animalaction action second_animal

我有变量animalactionsecond_animal,将这些变量放入字符串的首选方法是什么?

提问于
用户回答回答于

惯用的方式是写这样的东西:

"The #{animal} #{action} the #{second_animal}"

用户回答回答于

可以使用类似sprintf的格式将值注入字符串中。为此,字符串必须包含占位符。把你的参数放到一个数组中,并用于这些方法:

fmt = 'The %s %s the %s'
res = fmt % [animal, action, other_animal]  # using %-operator
res = sprintf(fmt, animal, action, other_animal)  # call Kernel.sprintf

你甚至可以明确地指定参数号:

'The %3$s %2$s the %1$s' % ['cat', 'eats', 'mouse']

或者使用散列键指定参数:

'The %{animal} %{action} the %{second_animal}' %
  { :animal => 'cat', :action=> 'eats', :second_animal => 'mouse'}

扫码关注云+社区