2010-11-05 21 views
12

Pourquoi certaines descriptions de méthodes dans Scaladoc commencent-elles par [use case]?Scaladoc [cas d'utilisation]

Exemple: scala.collection.immutable.StringOps.++

Est-ce juste un espace réservé à remplacer à l'avenir?

+0

En fait, je viens de remarquer la raison d'être de cette balise, décrite dans les commentaires de la réponse acceptée : http://stackoverflow.com/questions/1722726/is-the-scala-2-8-collections-library-a-case-of-the-longest-suicide-note-in-histo/1728140#1728140 –

Répondre

23

Ce sont des exemples simplifiés de la façon dont ces méthodes sont appelées. Habituellement, ces méthodes (++, map, flatMap, etc.) contiennent un paramètre implicite, le plus souvent un argument appelé une usine de construction qui (simplement) résume la création de collections résultantes.

Dans la plupart des cas, un client d'une collection ne spécifie pas ces paramètres implicites. ScalaDoc permet donc de définir une description simplifiée de la méthode: , cas d'utilisation. Cela permet aux utilisateurs de saisir rapidement l'idée derrière la méthode en question, et de ne pas être dérangé par quoi, par exemple. CanBuildFrom signifie et comment il est utilisé.

Par exemple, ceci est la déclaration complète de ++:

def ++[B >: A, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That 

Dans la plupart des cas, le type de collecte cible est le même que le récepteur de l'appel, de sorte que l'appel à peu près semble que la déclaration est la suivante (en supposant ++ est défini sur, disons, List):

def ++(that: TraversableOnce[A]): List[A] 

au-dessus, l'implicite est résolu au moment de la compilation, et les paramètres de type sont inférées. Dans la plupart des cas, cela devrait être l'opinion du client sur la méthode.

Et si vous voulez annoter votre propre méthode avec les cas d'utilisation, utilisez la balise @usecase dans vos commentaires doc:

/** ... 
* ... 
* @usecase def ++(that: TraversableOnce[A]): List[A] 
*/ 
+4

I voulez un bouton de masquage "cas d'utilisation". – pedrofurla

+0

C'est probablement une bonne idée. Peut-être pourriez-vous soumettre une demande d'amélioration sur le site de scala trac. – axel22

+0

J'ai seulement noté qui vous êtes en ce moment. Donc, répondant à votre suggestion: en fait, je devrais le commettre moi-même. Voici le seul brazillian qui a assisté à Scaladays 2010, et à l'époque j'étais le seul contributeur de Scaladoc2. Ravi de vous entendre, applaudissements. – pedrofurla