나는 'D'를 가르치고 있으며, 템플릿에 관해서는 기본적인 질문이 될 수도 있습니다.D 템플릿에서의 이해 D
int foo(int x)
{
return x;
}
string foo(string x)
{
return x;
}
void main()
{
assert(foo(12345) == 12345);
assert(foo("hello") == "hello");
}
물론,이 특정 조각이 우아한 미만 및 템플릿이 반복 제거하는 것입니다 :
을 예를 들어, 나는 현재 (이 게시물의 하단 참조) 읽기하고있는 문서에서는 다음과 같은 코드를 포함foo(T)(T x)
{
return x;
}
void main()
{
assert(foo!(int)(12345) == 12345);
assert(foo!(string)("hello") == "hello");
}
두 번째 예제는 전달 된 값을 반환하기 때문에 다소 기본입니다. 내 혼란은 실제로 템플릿이있는 함수 인 이으로 표시된다는 사실로 인해 하나의 유형의 값으로 제한된다는 것을 알 수 있습니다. 그 이유는 공통적으로 큰 값을 갖는 문자열과 정수 값을 쉽게 상상할 수 없기 때문입니다. 따라서 프로그래머는 전달 된 변수의 유형을 확인한 다음 문자열 또는 정수의 사례를 별도로 처리하는 코드를 작성해야합니까? 대형 함수 몸체를 만드는 것이 더 효율적입니까? 나는 templating에 익숙하지 않은 것이 명백하다는 것을 알았다. 따라서 내 질문 :
http://nomad.so/2013/07/templates-in-d-explained/
https://github.com/PhilippeSigaud/D-templates-tutorial에서 D 템플릿에 대한 전체 책 (무료)을 찾을 수 있습니다. 그것은 훌륭한 읽을 거리입니다. – DejanLekic