在开发历史中对这一点感到好奇......数组索引({0}
,{1}
等等)的括号如何成为字符串格式的标准?
有什么特别的意义,或者有人在80年代从空中挑选出来的东西?
答案 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上阅读有关整个项目的更多信息。