我正在使用wxWidgets重写我们的应用程序。其中一个目标是取代我们对本地化字符串的旧方法。另一个可能的目标是将Python解释器嵌入到应用程序中,但只能在以后。无论如何,任何使用C++的代码或库都可以使用Python风格的字符串格式,使用卷轴括号。在
如果您不了解Python,下面是它的format函数的文档。您可以在里面找到对Format Specification Mini-Language的引用,以及Format examples。一些医生的摘录。。。(>>>
是交互式Python模式的提示,下面的行显示了调用的结果。Python使用单引号或双引号作为字符串分隔符):
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
>>> '{}, {}, {}'.format('a', 'b', 'c') # 3.1+ only
'a, b, c'
>>> '{2}, {1}, {0}'.format('a', 'b', 'c')
'c, b, a'
>>> '{0}{1}{0}'.format('abra', 'cad') # arguments' indices can be repeated
'abracadabra'
我还想使用Python格式和命名占位符(而不是数字索引)。在Python中,使用字符串的str.format_map(mapping)方法,其中映射是类似于^{my_dictionary
包含如下映射:
有一个如下所示的template
字符串,我想得到result
。。。在
wxString template("{name} was born in {country}.");
wxString result(format_map(s, my_dictionary));
// the result should contain...
// "Guido was born in Netherlands."
<>你知道有任何可替代的C或C++代码吗?或者我必须自己写?在感谢您的时间和经验
彼得
是的。The fmt library使用基于Python的str.format的格式字符串语法。它支持
str.format
的大多数格式选项,包括命名参数。下面是一个例子:免责声明:我是这个图书馆的作者。在
相关问题 更多 >
编程相关推荐