J'ai la fonction suivante dans une classe: appelé comme suit est-ce un bogue en Xcode ou y a-t-il une raison pour laquelle le nom du paramètre (interne) est affiché et non l'étiquette d'argument externe? < / p> laisser myweather = conditions (pour: myLocation) p> << p> Le code fonctionne bien, la question concerne la documentation. L'image ci-dessous est ce qui est vu dans la fenêtre "Aide rapide" pour la fonction
code>. Étant donné que l'utilisateur de la fonction doit utiliser l'étiquette d'argument externe (
pour code>) et que j'ai explicitement documenté cette étiquette, ne devrait pas la ligne de paramètres dans la fenêtre d'aide rapide Lire les paramètres
pour code> et pas
paramètres emplacement code>? p>
3 Réponses :
Le mot "for" n'est pas un mot obligatoire, il est facultatif pour une meilleure compréhension du code, lorsqu'il est utilisé.
dans le swift 3 Stands de livre: P>
L'utilisation des étiquettes d'argumentation peut permettre une fonction
à appeler forte> dans une manière expressive, de type phrase forte>, tout en fournissant un organe de fonction lisible et clair dans l'intention forte>. p> blockquote> Sans ce mot, écrire le code serait p>
xxx pré> lorsque nous définissons des méthodes, il convient toujours d'utiliser des mots comme avec :, Utilisation de :, pour :, withLabel: etc. p> p>
Je suppose que Vince O'Sullivan veut corriger la documentation et ne pas changer la signature de sa méthode. Cela ne répond pas vraiment.
Mais je ne comprends pas pourquoi allions-nous remplacer le mot "emplacement" dans la documentation du mot "pour". S'il s'agit de paramètre, il devrait représenter le mot que nous utilisons dans le code comme une variable, n'est-ce pas?
Il a demandé "si les paramètres ne sont pas la ligne de paramètres dans la fenêtre d'aide rapide de lire les paramètres de lecture et non des paramètres", c'est pourquoi je mets la réponse avec la marque d'arguments.
Même si l'étiquette peut être et est omise dans l'appel, le paramètre nécessite toujours un nom dans la documentation. Pour les appelants de la méthode, le prénom s'applique, c'est-à-dire pour i> dans ce cas. C'est ce que l'on pourrait attendre dans la documentation. Le deuxième nom ( emplacement i> dans ce cas) est le nom interne utilisé par la mise en œuvre de la méthode. Il devrait être caché pour les consommateurs.
Si vous souhaitez que la documentation soit affichée, vous devez afficher en commentaire comme suit:
Sous Parameters, il est indiqué "pas de description", le nom interne Emplacement i> est visible deux fois et la description du paramètre apparaît désormais comme une balle des descriptions générales. C'est encore pire que la sortie originale et certainement pas ce que Vince O'Sullivan cherchait.
Étant donné que la balle de description utilise le composé de paramètres Label +, et la section des paramètres décrit uniquement l'emplacement ... Je ne sais pas ... pour moi, la documentation est claire.
Tout simplement, Préférer cette aide rapide à identifier the splg et Directives de conception de l'API Utilisez la terminologie "Paramètre" et "L'étiquette d'argument" (comme dans votre question titre) au lieu de "paramètre interne" et "paramètre externe" (qui peut conduire à la confusion que vous élevez). Compte tenu de cela, les paramètres relèvent des paramètres en direction de l'aide rapide et des étiquettes d'argumentation apparaissent dans la déclaration. P> pour code> n'est pas le paramètre;
emplacement code> est. Et l'aide rapide documente les paramètres. P>
pour code> en tant que lieu de la surface de la Terre, comme cela a été suggéré, serait un peu déroutant du lecteur. P>
J'ai toujours trouvé qu'un peu étrange, mais je suppose que le "nom de paramètre externe" agit comme une étiquette i> pour le site d'appel et le "nom de paramètre interne" comme le nom réel nom je>. L'étiquette est censée rendre l'appel de fonction lire un peu comme une phrase ou une phrase. Dans Swift 3 Conventions, ces étiquettes sont régulièrement des prépositions au lieu de noms, et il serait logique de décrire les paramètres par leur nom (généralement un nom) au lieu d'une étiquette (qui peut être une préposition). Si ma supposition a raison, je préférerais - pour la clarté - ils utilisaient "l'étiquette" et "nom" au lieu de nom "externe" et "interne".
Xcode devrait vraiment être capable de produire deux version de la documentation. Un pour les consommateurs de l'API sans accès au code source, indiquant le nom externe uniquement dans la ligne de déclaration et à l'aide du nom externe de la description du paramètre. Et un autre pour le mobilier de la méthode, montrant les deux noms dans la déclaration et en utilisant le nom interne dans la description du paramètre. Je ne pense pas que Xcode puisse distinguer ces deux vues.
@Codo, je suis enclin à être d'accord mais de doute que cela se produirait jamais. Pendant ce temps, j'ai soulevé cela comme un bogue (27921906). Je vais mettre à jour ici avec n'importe quelle réponse.
Je le vois aussi principalement comme un bug. Si Xcode ne fournit pas à la fois une vue interne et externe, il doit indiquer la vue externe, n'utilisez donc que le nom du paramètre pour i> dans votre code.