2016-06-18 3 views
0

Ich weiß was eine externe Namen in einer Funktion ist. Aber ich kann keine präzise, ​​klare und überzeugende Antwort auf die Frage geben: Was ist der Zweck der externen Namen, wann und mit welchen Vorteilen?Was sind die Vorteile von externen Namen für die schnelle Funktion?

func RandomInt(minimum min: Int, maximum max: Int) -> Int { 
    if max < min { return min } 
    return Int(arc4random_uniform(UInt32((max - min) + 1))) + min 
} 

Mein Verständnis In dem obigen Code, minimum und maximum sind die externen Namen. Sie sind an die internen Namen (min und max) "gebunden". Wenn Sie die Funktion aufrufen, sollten die externen Namen in die Argumentliste geschrieben werden. Dieser lange und beschreibende externe Name verbessert die Lesbarkeit des Codes, wenn Sie die Funktion verwenden.

Bitte mein Verständnis korrigieren, wenn etwas nicht in Ordnung ist oder mehr hinzufügen, wenn

benötigt

Vielen Dank.

Antwort

1

Die externen Parameter wurden hauptsächlich für die Kompatibilität mit Obj-C-Methoden benötigt, da Obj-C sie auch verwendet (obwohl sie anders benannt sind), aber sie helfen auch Lesbarkeit in Method Aufrufer Kontext.

Beachten Sie, dass externe Parameter tatsächlich Teil des Methodennamens sind. Daher können Sie Methoden überladen, indem Sie den externen Parameter ändern.

Ein weiterer interessanter Punkt der genannten Parameter die Fähigkeit ist, die Standardwerte zu bieten:

func test(x x: Int = 0, y: Int = 1, z: Int = 2) { 
    print("x: \(x), y: \(y), z: \(z)") 
} 

// we can skip a parameter in the middle! 
test(x: 10, z: 5) 

By the way, sind benannte Parameter in vielen Programmiersprachen häufig (eine Liste auf wikipedia sehen). Jede Sprache implementiert sie jedoch etwas anders.

+0

so wegen der dem Obj-C die externen Namen hat, addiert die schnelle auch, dass für die Kompatibilität mit Obj-C. Das könnte eine schlimme Frage sein: Ich habe gelernt, dass die Idee, Swift zu erstellen, darin besteht, den Obj-C zu verändern. Wenn ja, warum muss swift auf die Obj-C-Kompatibilität achten? – SLN

+0

@SLN Eine Sprache ist die Nebensache. Auf einer Plattform sind alle Frameworks (Foundation, UIKit etc.) wichtig. Und sie sind alle in Obj-C geschrieben. Wenn Apple mit einer neuen Sprache kommen sollte, mussten alle diese Frameworks mit Swift kompatibel sein, daher war die Interoperabilität zwischen Obj-C und Swift sehr wichtig. – Sulthan

+0

hmmmm ... sehr überzeugende Erklärung! Vielen Dank für Ihre Hilfe ") – SLN

3

Nach den swift documentation,

Die Verwendung von externen Parameternamen zulassen kann eine Funktion in einem ausdrucksvollen Satz artig genannt werden, während immer noch einen Funktionskörper bereitstellt, die lesbar und klar ist, in Absicht.

beispielsweise

func sayHello(to person: String, and anotherPerson: String) -> String { 
    return "Hello \(person) and \(anotherPerson)!" 
} 

print(sayHello(to: "Bill", and: "Ted")) 
+0

Vielen Dank für das anschauliche Beispiel und die Erklärung, es verbessert die Lesbarkeit des Codes und macht es natürlicher. – SLN

Verwandte Themen