加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 不使用字符串文字时的字符串插值

发布时间:2020-12-16 20:30:15 所属栏目:百科 来源:网络整理
导读:我有一个Ruby脚本,使用字符串插值来构建错误消息. p "#{vName} is not a defined variable" = 'xxx is not a defined variable' 另一个程序员通过并尝试将字符串文字外部化为单独的配置文件.当然,他没有得到替代. p err_string_from_config = '#{vName} is n
我有一个Ruby脚本,使用字符串插值来构建错误消息.
p "#{vName} is not a defined variable"  => 'xxx is not a defined variable'

另一个程序员通过并尝试将字符串文字外部化为单独的配置文件.当然,他没有得到替代.

p err_string_from_config  => '#{vName} is not a defined variable'

我已经环顾四周了,但是不能想出比转换为sprintf字符串和使用printf更好的东西.

有没有人知道如何使用#{}替换来处理Ruby脚本中不是双引号字符串的字符串?

解决方法

实际上,Ruby的功能与John的 Python示例非常相似:
$irb
>> greeting = 'hello %s,my name is %s!'
>> interpolated = greeting % ['Mike','John']
=> "hello Mike,my name is John!"
>>

如果您的参数是数组常量,这也很有用.如果你必须使用#{}样式插值,你可以使用eval:

>> greeting = 'hi #{name}'    # notice name is not defined yet
>> name = "mike"
>> eval '"' + greeting + '"'

eval方法比使用%样式插值要慢得多,所以它是一个权衡.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读