Я почти уверен, что есть специальное имя для «спецификации» функции / метода. Это слово относится к
- сколько аргументов нужно
- порядок аргументов
- какие аргументы являются необязательными
Есть ли название для этого?
Я почти уверен, что есть специальное имя для «спецификации» функции / метода. Это слово относится к
Есть ли название для этого?
Ответы:
Обычно это называется сигнатурой типа .
Сигнатура типа включает тип возвращаемого значения функции, количество аргументов, типы аргументов или ошибки, которые она может передать обратно.
interface
, или объявление функции C / C ++ в заголовочном файле (буквально называемый a prototype
).
TL; DR Вы, вероятно, говорите о сигнатуре функции (или сигнатуре метода), частью которой является сигнатура типа.
Но на самом деле все зависит от того, что вы считаете функцией «спец». Я интерпретирую это как «всю информацию, необходимую программисту для вызова функции». Это включает имя функции, тип параметра, порядок и необходимость, возможно, тип возвращаемого значения и, возможно, даже пространство имен этой функции.
Но то, требуются ли все эти вещи (или даже четко определены), зависит от языка / среды, которую вы используете. Кроме того, если вы измените определение на «всю информацию, необходимую для того, чтобы машина вызывала функцию», спецификация, скорее всего, будет другой 1 .
Строго говоря, сигнатура функции (или метода) не является единообразным термином, 2, 3 даже на одном языке. 4, 5, 6, 7 Но это почти наверняка слово, которое вы ищете, потому что оно будет понято почти любым программистом.
public
, static
и т. д.language-agnostic
, примеры C ++ (A) относятся ко мне и (B) иллюстрируют путаницу, которая так часто окружает человеческую терминологию
Я считаю, что термин "контракт". Он определяет интерфейс и то, что ожидается от абонента и вызываемого абонента; однако он также охватывает такие вещи, как допустимые значения параметров, что не так, как многие языки позволяют определять с помощью определения функции или класса, поэтому термин «контракт» может иметь более широкий смысл, чем вы имели в виду. Я видел это в нескольких объектно-ориентированных и специфических для Java книгах по программированию. Я не уверен, что это специфично для Java, но я не понимаю, зачем это нужно. Подпись - это другой часто используемый термин, но мне стало нравиться «контракт».