2017-01-13 2 views
-3

Lassen Sie uns sagen, dass ich die folgende Funktion in Swift 3 schreiben:Swift-Funktion ohne Argument Etiketten

func rgb(r: CGFloat, g: CGFloat, b: CGFloat) -> UIColor { 
    return UIColor.init(red: r, green: g, blue: b, alpha: 1) 
} 

Als ich es nennen, muss ich let black = rgb(r:0, g:0, b:0)

schreiben Ist es möglich, diese Funktion zu schreiben, so dass ich nennen Sie es als let black = rgb(0, 0, 0)?

+1

Siehe „[Weglassen Argument Labels] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html#//apple_ref/doc/uid/TP40014097- CH10-ID166) "Abschnitt des Sprachführers. – Hamish

Antwort

1

Verwenden Sie ein _ das Etikett zu ignorieren:

func rgb(_ r: CGFloat, _ g: CGFloat, _ b: CGFloat) -> UIColor { 
    return UIColor(red: r, green: g, blue: b, alpha: 1) 
} 

Argumente können zwei Parameternamen haben, einen externen Namen von dem internen Namen gefolgt. Ein Unterstrich (_) bedeutet "Ignoriere diesen Wert", so dass das externe Label am Aufrufort nicht benötigt wird.

3

Vom documentation:

Argument Weglassen Labels

Wenn Sie kein Argument Etikett für einen Parameter wollen, schreiben Sie eine Strich (_) anstelle eines expliziten Argument Label für dass Parameter.

func someFunction(_ firstParameterName: Int, secondParameterName: Int) { 
    // In the function body, firstParameterName and secondParameterName 
    // refer to the argument values for the first and second parameters. 
} 
someFunction(1, secondParameterName: 2) 

Wenn ein Parameter ein Argument Label hat, muss das Argument markiert werden, wenn Sie die Funktion aufrufen.

Verwandte Themen