2016-04-25 37 views

Antwort

2

_ bedeutet, wenn Sie Unterstreichungs Parameter verwenden test Funktion aufrufen, müssen Sie den Text nicht vor dem schreiben zweite Parameter test(currentName:"aa", 3)

, wenn Sie Ihre Funktion wie folgt erklären:

func test(currentName name: String, secondParameter: Int) {  
    print("aa\(name) abc"); 
    //how to use _ parameter? 
} 

dann, wenn Sie test Funktion aufrufen , Müssen Sie wie folgt nennen:

test(currentName:"aa", secondParameter: 3) 
+0

func like following func test (aktuellerName: String, _: Int) { print ("aa \ (name) abc"); // Wie benutzt man _ Parameter? } –

+0

@Blue Freude können wir _ in Funktion Körper als Parameter verwenden. – Sahil

1

Wenn Sie zweite Parameter der Funktion verwenden möchten, wollen aber nicht „name“, um es, müssen Sie Signatur-Funktion func test(currentName name: String, age _: Int) ändern und dann auf die zweite Argument verweisen als age.

func test(currentName name: String, _ age: Int) { 
    print("Name: \(name), age: \(age)") 
} 

test(name: "Piter", 3) 
+0

Sie haben currentName und Name in der ersten Zeile dort ausgetauscht. – MikeJfromVA

+1

Danke, @MikeJfromVA! Ich habe es repariert. –

2

In Swift haben Funktionen sowohl Parameterbeschriftungen als auch Parameternamen. Dies dient der Übersichtlichkeit bei der Verwendung der Funktionen. Denken Sie an eine normale C-Funktion, wird als solche deklariert:

string FunctionName(string firstName, string lastName) 

Mit Blick auf die Funktionsdeklaration, es ist leicht zu sehen, was jeder Parameter ist. In diesem Fall ein firstName und ein lastName. Wenn es jedoch im Code aufgerufen wird, ist es weniger offensichtlich, insbesondere wenn die Parameterwerte nicht selbstbeschreibend sind. zB:

FunctionName("Neil","Armstrong") // Fairly obvious 

FunctionName("Bo","Ng") // Not so obvious 

In Swift haben Parameter sowohl Bezeichnungen als auch Namen. Labels gibt es rein aus Gründen der Klarheit, so dass der Code, der die Funktion aufruft, kann gelesen werden und leichter zu verstehen, ohne in seine Definition zu tauchen, die es vollständig zu verstehen

let fullName = funcName(firstName: "Bo", lastName: "Ng") 

In einigen Fällen ist der Parametername völlig unnötig zB:

let total = addTwoNumbers(1,2) 

So werden die Etiketten sind optional, bezeichnet durch einen Unterstrich

func addTwoNumbers(_ firstVal:Int,_ secondVal:Int) 

Generell sollten Sie Etiketten verwenden, um die fu zu machen Sie schreiben klarer, wenn Sie nicht der Meinung sind, dass die Parameter vollständig selbstbeschreibend sind.