적어도 C에서는 printf
함수 계열 을 사용하여 서식이 지정된 문자열을 인쇄 한다는 것을 누구나 알고 있습니다. 이러한 함수는 퍼센트 부호 ( %
)를 사용 하여 형식 지정자의 시작을 나타냅니다. 예를 들어, %d
를 인쇄하는 수단 int
, 및 %u
의미를 인쇄 unsigned int
. printf
함수 및 형식 자리 표시자가 작동 하는 방식에 익숙하지 않거나 단순히 새로 고침이 필요한 경우 Wikipedia 기사 를 시작하는 것이 좋습니다.
내 질문은, 이것이 원래 또는 미래에 형식 지정자로 선택되어야하는 특별한 이유가 있습니까?
분명히 결정은 오래 전에 이루어졌으며 (C 언어의 전임자에게도 가능성이 높았 음) 그 이후로 거의 "표준"이되었습니다 (C뿐만 아니라 다른 여러 언어에서도). 구문을 다양한 각도로 채택 했으므로 너무 늦어서 변경되지 않습니다. 그러나 누군가 왜이 선택이 처음에 이루어질 수 있었는지, 그리고 비슷한 기능을 가진 새로운 언어를 디자인 할 때 선택이 적절한 지에 대한 통찰력이 있는지 궁금합니다.
예를 들어 C # (및 다른 .NET 언어 제품군)을 사용하여 Microsoft는 문자열 형식화 기능의 작동에 대해 약간 다른 결정을 내 렸습니다. printf
C 의 구현과 달리 어느 정도의 유형 안전이 시행 될 수는 있지만 해당 매개 변수의 유형을 표시 할 필요는 없지만 색인이없는 중괄호 쌍 ( {}
) 을 사용하기로 결정했습니다. 다음과 같이 형식 지정자로 사용하십시오.
string output = String.Format("In {0}, the temperature is {1} degrees Celsius.",
"Texas", 37);
Console.WriteLine(output);
// Output:
// In Texas, the temperature is 37 degrees Celsius.
이 String.Format
메소드의 일반적인 복합 형식에 대한 기사와 마찬가지로 메소드 의 문서 에는 자세한 정보가 포함되어 있지만 정확한 세부 사항은 중요하지 않습니다. 요점은 단순히 %
형식 지정자의 시작을 나타내는 데 사용 하는 오랜 관행을 버렸다는 것 입니다. C 언어는 단지 쉽게 사용할 수도 {d}
와 {u}
,하지만하지 않았다. 왜,이 결정이 회고에 적합한 지, 그리고 새로운 구현이 그것을 따라야하는지에 대해 어떤 생각이 있습니까?
분명히 이스케이프 가능한 그래서이 문자열 자체에 포함 할 수 있어야하지 않을 것을 선택 할 수없는 문자가 없습니다, 그러나 그 문제는 아주 잘 만 사용하여 이미 해결 이 그들입니다. 다른 고려 사항은 무엇입니까?
{u}
대신에 사용 하는 것이 가능 %u
하지만 상당한 이점이 있습니까? 거의 임의적 인 선택처럼 보입니다.
{}
C #을 배우는 사람들이 다른 것을 배우지 않기 위해 의도적으로 구문을 선택했다고 말하고 있습니까? 나는 그것이 디자인 결정의 주요 부분이라고 생각하기가 매우 어렵다는 것을 안다. 어떻게 든 진술을 뒷받침 할 수 있습니까?