Ich frage mich, was miteinander zwei „ähnliche Funktionen“ unterscheidet und eindeutigWas genau unterscheiden zwei Funktionen in Swift?
werden kannDies ist, was ich gelernt habe aus Selbststudium
Die Einzigartigkeit kommt aus genannt: Funktionsname + Argument Ordnung und Argumentname + Rückgabetyp Die Kombination von ihnen muss eindeutig sein, um die Funktion eindeutig (Bitte siehe Beispiel unten)
Nmu1
undNum2
würden dazu führen, zweideutig zu machen, weil der Rückgabetyp (nicht hat nicht den so Rückkehr Namen genannt schon der Name die Funktion als diese Rolle fungieren) bezeichnet nicht, wenn eine FunktionObwohl
Num3
Funktion hat einen anderen Parameter Namen zu nennen, wird es nicht eindeutig trennt es von der Funktion inNum1
undNum2
. Da der Argumentname nicht referenziert wird, wenn die Funktion daher aufgerufen wurde, macht nur ein anderer Argumentname eine Funktion nicht eindeutig; Und die Funktion inNum4
unterscheidet sich mit allen oben genannten Funktionen, weil ihre Unterschrift Funktionsname + Argument Reihenfolge und Argumentname + Rückgabetyp ist einzigartig unter allen vorherigen 3 Funktionen.Num5
undNum6
Funktionen sind voneinander verschieden, denn sie unterschiedliche Argument Aufträge haben, wenn sie//Num1 func foo(guy name: String) -> String { return "Hi \(name)" } //Num2 func foo(guy name: String) { print("Hi \(name)") } //Num3 func foo(guy called: String) -> String { return "Hi \(called)" } //Num4 func foo(dude name: String) -> String { return "What's up \(name)" } //Num5 func foo(man name: String, from place: String) { print("Hi! I'm \(name) I come from \(place)") } //Num6 func foo(from place: String, man name: String) { print("Hi! I'm \(name) I come from \(place)") }
Frage definiert wurden: Ich vermisse vielleicht oder vielleicht falsch verstanden sogar einige Teile. Es wäre sehr nett von Ihnen, dass Sie mich korrigieren und die Teile hinzufügen Ich vermisste
Dank
[Update] Lassen Sie uns ein bisschen mehr über dieses Thema diskutieren. Lassen Sie uns mit der Frage beginnen, die the difference between Argument and Parameter diskutieren. Diese Frage macht hier sehr viel Sinn!
Zurück zu dem Zitat aus dem offiziellen Dokument swift
Jeder Funktionsparameter hat sowohl ein Argument Label und einen Parameternamen. Die Argumentbezeichnung wird beim Aufruf der Funktion verwendet; Jedes Argument wird in den Funktionsaufruf mit seiner Argumentbezeichnung davor geschrieben. Der Parametername wird bei der Implementierung der Funktion verwendet. Standardmäßig verwenden Parameter ihren Parameternamen als Argumentbezeichnung.
Argument, Parameter, Argument Labels und Parameternamen sind unterschiedlich. Der Unterschied kann hier zu Differentialfunktionen verwendet werden.
Funktionen mit gleichem Parameternamen, gleicher Parameterreihenfolge, gleichem Rückgabetyp und gleichem Funktionskörper können von verschiedenen Argument Labels unterschieden werden.
func foo(dude name: String) -> Int {
print("Hi \(name)!")
return 1
}
func foo(man name: String) -> Int {
print("Hi \(name)!")
return 1
}
//foo(dude: String) & foo(man: String) is identical when calling
Für weitere Informationen wenden Sie sich bitte an Multiple functions with the same name
Siehe http : //stackoverflow.com/questions/27690076/multiple-functions-with-the-same-name. –
@MartinR Vielen Dank. Es hilft sehr! – SLN