当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《不使用字符串文字时的字符串插值》经验,为你挑选了1个好方法。

我有一个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脚本中不是双引号文字的字符串?



1> Mark A. Nico..:

实际上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方法比使用%样式插值要慢得多,所以这是一个权衡.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有