Как {0}, {1} и т. Д. Стали стандартом для форматирования строк? - PullRequest
4 голосов
/ 13 октября 2010

Просто любопытно, что в истории разработки ... как скобки с индексом массива ({0}, {1} и т. Д.) Стали стандартом форматирования строк?

Что-нибудь особенное, или что-то, что кто-то выбрал из воздуха в 80-х?

Ответы [ 3 ]

5 голосов
/ 13 октября 2010

На самом деле, еще в 80-х годах стандарт форматирования строк был printf, с форматными строками, такими как %d для целых чисел или %s для строк, и непонятными модификаторами формата (такими как %06d, который рисует целое число и дополняет его нулями слева до шести символов). Причина заключалась в том, что система типов C была очень плохой, и printf не мог угадать, какие данные она получала (был ли это указатель на строку? Целое число? Число с плавающей запятой), что делало это необходимым указать тип аргументов внутри строки формата. Этот подход остался.

Этот формат был перенесен с C (и C ++) на многие языки (Java, PHP, OCaml, Scilab ...) и несколько инструментов (например, функция console.log Firebug).

Самый ранний формат {0}, который я видел, был в C #, в начале 2000-х годов. До сих пор я не видел этого много за пределами C #.

2 голосов
/ 13 октября 2010

Taligent MessageFormat . 1990-й года. Также в JDK 1.1 (которая пришла от Taligent) и ICU (==)

0 голосов
/ 13 октября 2010

Я не уверен, является ли это фактическим источником, но проект ICU (International Components for Unicode) использует фигурные скобки в форматировании сообщения и впервые был выпущен как открытый исходный код в 1999 году. Насколько мне известноэто не стандарт, но приятно иметь какое-то соглашение о форме обработки текста в Юникоде между различными языками программирования (по крайней мере, существуют реализации / привязки для C ++, Java и PHP (не уверен в C #)).Вы можете прочитать больше обо всем проекте на userguide.icu-project.org.

...