함수 / 메소드의 '사양'에 대한 특별한 이름이 있다고 확신합니다. 이 단어는
- 얼마나 많은 논쟁이 필요한가
- 논쟁의 순서
- 선택적인 인수
그 이름이 있습니까?
함수 / 메소드의 '사양'에 대한 특별한 이름이 있다고 확신합니다. 이 단어는
그 이름이 있습니까?
답변:
일반적으로 이것을 유형 서명 이라고합니다 .
형식 서명에는 함수의 반환 형식, 인수 수, 인수 유형 또는 전달할 수있는 오류가 포함됩니다.
interface
같이 또는 헤더 파일에서 C / C ++ 함수 선언에서 와 같이 구현하지 않고 선언하는 것을 의미 합니다 (문자 적으로 a라고 함 prototype
).
TL; DR 함수 서명 (또는 메소드 서명) 에 대해 이야기하고있을 것 입니다. 그 중 일부는 유형 서명입니다.
그러나 실제로 함수 "사양"으로 간주하는 대상에 따라 다릅니다. "프로그래머가 함수를 호출하는 데 필요한 모든 정보"로 해석합니다. 여기에는 함수 이름, 매개 변수 유형, 순서 및 필요성, 아마도 반환 유형 및 해당 함수의 네임 스페이스가 포함됩니다.
그러나 모든 것들이 필요한지 (또는 잘 정의되어 있는지) 사용중인 언어 / 환경에 따라 다릅니다. 또한 정의를 " 기계 가 함수를 호출하는 데 필요한 모든 정보"로 변경 하면 스펙이 다를 수 있습니다 1 .
엄밀히 말하면, 함수 (또는 메소드) 서명은 동일한 언어 내에서도 일관된 용어 2, 3 이 아닙니다 . 4, 5, 6, 7 그러나 거의 모든 프로그래머가 이해할 수 있기 때문에 원하는 단어 일 것입니다.
language-agnostic
C ++ 예제는 (A) 나와 관련이 있고 (B) 종종 인간 용어를 둘러싼 혼란을 설명 하기 때문에 반대 의견을 표명했습니다.
나는 그 용어가 "계약"이라고 믿는다. 인터페이스와 발신자와 수신자의 예상 사항을 정의합니다. 그러나 함수 또는 클래스 정의로 많은 언어를 정의 할 수없는 허용되는 매개 변수 값과 같은 내용도 다루므로 "계약"이라는 용어는 의미보다 의미가 더 넓을 수 있습니다. 여러 객체 지향 및 Java 관련 프로그래밍 서적에서 그것을 보았습니다. Java와 관련이 있는지 확실하지 않지만 왜 필요한지 모르겠습니다. 서명은 일반적으로 사용되는 다른 용어이지만 "계약"처럼 자랐습니다.