{0},{1}等如何成为格式化字符串的标准?

时间:2010-10-13 18:22:52

标签: .net string history

在开发历史中对这一点感到好奇......数组索引({0}{1}等等)的括号如何成为字符串格式的标准?

有什么特别的意义,或者有人在80年代从空中挑选出来的东西?

3 个答案:

答案 0 :(得分:5)

实际上,早在80年代,格式化字符串标准为printf,格式字符串如%d用于整数,%s用于字符串,以及模糊的格式修饰符(如{ {1}}绘制一个整数并用零填充到左边,直到它达到六个字符)。原因是C类型系统非常差,%06d不可能猜出它收到的数据是什么(它是一个指向字符串的指针?一个整数?一个浮点数)必须在格式字符串中指定参数的类型。这种方法仍然存在

这种格式从C(和C ++)转移到许多语言(Java,PHP,OCaml,Scilab ......)和几个工具(例如Firebug的printf函数)。

我最早看到console.log格式是在21世纪初的C#中。到目前为止,我还没有在C#之外看到过很多。

答案 1 :(得分:2)

Taligent MessageFormat。 20世纪90年代。同样在JDK 1.1(来自Taligent)和ICU(==)

答案 2 :(得分:0)

我不确定它是否是实际来源,但ICU(Unicode国际组件)项目在message formatting中使用花括号,并于1999年首次作为开源发布。据我所知,它不是一个标准,但很高兴在不同的编程语言之间处理Unicode文本格式有一些形式的协议(至少存在C ++,Java和PHP的实现/绑定(不确定C#))。您可以在userguide.icu-project.org上阅读有关整个项目的更多信息。