Poiché la tua domanda non si riferisce ad alcun particolare linguaggio di programmazione nel titolo (lo so che fa nel tag) condividerò la mia recente esperienza con Swift. In Swift la funzione/firma del metodo include effettivamente il tipo restituito. Così compilatore genera un errore solo se si chiama questa funzione/metodo senza specificare esplicitamente tipo di ritorno, ad es .:
func some() -> Bool {
return true;
}
func some() -> Int {
return 1;
}
let valBool: Bool = some()
let valInt: Int = some()
// this doesn't work: Ambiguous use of 'some'
some()
In cima a questo Swift ancora lo rende più interessante. Ti consente di avere 2 funzioni/metodi con gli stessi parametri e tipi di ritorno solo se i nomi dei parametri sono diversi, ad es.:
func some(#foo: Bool) -> Bool {
return foo;
}
func some(#bar: Bool) -> Bool {
return bar;
}
some(foo: true)
some(bar: false)
Così ti dà differenziazione semantica nei metodi di firma
UPD. Dal momento che Swift 2.0 esterno nome del parametro è stato cambiato e ora è necessario fornire i nomi esterni e locali due volte anche se è lo stesso
func some(foo foo: Bool) -> Bool {
return foo;
}
func some(bar bar: Bool) -> Bool {
return bar;
}
some(foo: true)
some(bar: false)
+1 per la risposta. – Raghunandan
Non puoi perché non puoi? Veramente? – m3th0dman
Ho spiegato che in edit;) Ho inviato un post breve perché scrivere le risposte a domande così semplici è come una gara, quindi se è possibile rimuovere il tuo voto. –