Qual è il nome per la "specifica" di una funzione / metodo?

22

Sono abbastanza sicuro che ci sia un nome speciale per la "specifica" di una funzione / metodo. È una parola che si riferisce a

  • numero di argomenti necessari
  • l'ordine degli argomenti
  • quali argomenti sono facoltativi

C'è un nome per questo?

    
posta callum 22.09.2015 - 14:15
fonte

3 risposte

48

Normalmente questo è chiamato firma del tipo .

A type signature includes the function's return type, the number of arguments, the types of arguments, or errors it may pass back.

    
risposta data 22.09.2015 - 14:21
fonte
24

TL; DR Probabilmente stai parlando di una firma della funzione (o della firma del metodo), in parte una firma del tipo.

Ma in realtà dipende da cosa consideri una funzione "specifica". Lo interpreto come "tutte le informazioni necessarie per un programmatore per chiamare una funzione". Questo include il nome della funzione, il tipo di parametro, l'ordine e la necessità, probabilmente il tipo di ritorno e probabilmente anche lo spazio dei nomi di quella funzione.

Ma indipendentemente dal fatto che tutte queste cose siano richieste (o anche ben definite) dipende dalla lingua / dall'ambiente che stai usando. Inoltre, se cambi la definizione in "tutte le informazioni richieste per una macchina per chiamare una funzione", la specifica è probabilmente diversa 1 .

In senso stretto, una firma di funzione (o metodo) non è un termine coerente, 2, 3 anche all'interno della stessa lingua. 4, 5, 6, 7 Ma è quasi certamente la parola che stai cercando, perché sarà compresa da quasi tutti i programmatori.

  1. Draft spec c ++ n337, definizione 1.3.17, la firma non includi tipo di reso, perché non è necessario risolvere la funzione.
  1. "firma" non include le informazioni dello spazio dei nomi
  2. "signature" include eccezioni e modificatori come public , static , ecc.
  1. "firme" C ++ fanno non includere il tipo di reso
  2. C ++ "firme" do include tipo di ritorno.
  3. "firme" in C ++ non includono il tipo di reso, a meno che la funzione è la specializzazione di un modello.
  4. Le "firme" in C ++ includono informazioni su namespace (scope) e "altre miscellanee". .
risposta data 22.09.2015 - 19:43
fonte
0

Credo che il termine sia "contratto". Definisce l'interfaccia e cosa si aspetta dal chiamante e dal chiamato; tuttavia copre anche cose come valori consentiti di parametri che non sono qualcosa che molti linguaggi permettono di definire dalla funzione o dalla definizione della classe, quindi il termine "contratto" potrebbe avere un significato più ampio di quello che intendevi. L'ho visto in diversi libri di programmazione specifici per oggetti e Java. Non sono sicuro se sia specifico di Java, ma non vedo perché dovrebbe essere necessario. La firma è l'altro termine comunemente usato, ma a me è piaciuto "contratto".

    
risposta data 23.09.2015 - 19:10
fonte

Leggi altre domande sui tag