2010-11-05 9 views
12

¿Por qué algunas descripciones de métodos en Scaladoc comienzan con [use case]?Scaladoc [caso de uso]

Ejemplo: scala.collection.immutable.StringOps.++

¿Es sólo un marcador de posición para ser reemplazado en el futuro?

+0

De hecho, me he dado cuenta de las razones detrás de esta etiqueta, que se describe en los comentarios de la respuesta aceptada : http://stackoverflow.com/questions/1722726/is-the-scala-2-8-collections-library-a-case-of-the-longest-suicide-note-in-histo/1728140#1728140 –

Respuesta

23

Son ejemplos simplificados de cómo se llaman estos métodos. Por lo general, estos métodos (++, map, flatMap, etc.) contienen un parámetro implícito, muy a menudo un argumento llamado fábrica de creación que (simplemente) resuma la creación de las colecciones resultantes.

En la mayoría de los casos, un cliente de una colección no especifica estos parámetros implícitos, por lo que ScalaDoc permite definir una descripción simplificada del método: un caso de uso . Esto permite a los usuarios recoger rápidamente la idea detrás del método en cuestión, y no molestarse con lo que p. CanBuildFrom significa y cómo se usa.

Por ejemplo, esta es la declaración completa de ++:

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

En la mayoría de los casos, el tipo de colección de destino es el mismo que el receptor de la llamada, por lo que la llamada casi parece como si la declaración es la siguiente (suponiendo ++ se define en una, digamos, List):

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

arriba, lo implícito se resuelve en tiempo de compilación, y los parámetros de tipo son inferidos. En la mayoría de los casos, esta debería ser la vista del método por parte del cliente.

Y si desea anotar su propio método con casos de uso, utilice la etiqueta @usecase en sus doc comentarios:

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

I quiere un botón de ocultamiento de 'caso de uso'. – pedrofurla

+0

Esa es probablemente una buena idea. Quizás podría enviar una solicitud de mejora en el sitio de Scala Trac. – axel22

+0

Solo te he señalado quién eres en este momento. Entonces, respondiendo a tu sugerencia: en realidad debería comprometerme yo mismo. Aquí está el único chico brasileño que ha asistido a Scaladays 2010, y en aquel entonces yo era el único colaborador de Scaladoc2. Es bueno saber de ti, salud. – pedrofurla

Cuestiones relacionadas