79 votes

Comment documentez-vous les paramètres du paramètre de fermeture d'une fonction dans Swift 3?

Dans Xcode beta 8 et Swift 3, quand vous avez une méthode qui prend une fermeture comme un paramètre, par exemple:

func foo(bar: (String) -> Void) {
    bar("Hello, world")
}

Comment avez-vous documenter les paramètres de la fermeture? Par exemple, si j'ai écrit ceci:

/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
func foo(bar: (String) -> Void) {
    bar("Hello, world")
}

Ensuite, l'aide rapide ressemble à ceci:

foo(bar:) Quick Help

Je voudrais savoir quelle est la syntaxe qui va me permettre d'écrire un texte pour remplacer "Pas de description." Merci beaucoup!

96voto

timvermeulen Points 1000

Autant que je sache, vous ne pouvez le document de la fermeture des paramètres si vous les étiquettes:

/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
/// - parameter theString: A string to use
func foo(bar: (theString: String) -> Void) {
    bar(theString: "Hello, world")
}

C'est moins qu'idéal: il vous oblige à utiliser un argument étiquette lorsque vous appelez la fermeture, et si il y a des conflits de noms, il n'y a aucun moyen de distinguer entre les deux.

Edit: @Arnaud souligné, vous pouvez utiliser _ pour éviter d'avoir à utiliser l'étiquette de paramètre lors de l'appel de la fermeture:

/// Calls bar with "Hello, world"
/// - parameter bar: A closure to call
/// - parameter theString: A string to use
func foo(bar: (_ theString: String) -> Void) {
    bar("Hello, world")
}

En fait, c'est la seule approche valable dans Swift 3, car paramètre étiquettes ne font plus partie du système de type (voir le SE-0111).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X