Scala tipo de paréntesis
Lo sétrait Foo[T]
significaT
es un tipo parametrizado. Pero algunas veces puedo vertrait Foo[T1,T2]
otrait Foo[T1,T2,R]
, No puedo encontrar en ninguna parte describir el significado de varios tipos dentro de un paréntesis de tipo, ¿podría indicarme los usos en este caso? Por lo que especulo, Foo [T1, T2] solo significa que definió dos parámetros de tipo, no tiene que ser tomado unT1
y devolver unT2
.
Cuando leo playframework documentación hoy, nuevamente me encontré confundido acerca de esta pregunta. En la documentación, dice:
A BodyParser [A] es básicamente un Iteratee [Array [Byte], A], lo que significa que recibe fragmentos de bytes (siempre que el navegador web cargue algunos datos) y calcula un valor de tipo A como resultado.
Esta explicación suena como, el segundo parámetro de tipo dentro de un paréntesis de tipo es un tipo de retorno.
También recuerdo quetrait Function2 [-T1, -T2, +R] extends AnyRef
significa una función que toma unT1
yT2
, devuelve unR
.
¿Por qué ponen el tipo de retorno en el soporte? ¿Significa que todo el último parámetro en un paréntesis es un tipo de retorno? ¿O acaban de definir un nuevo tipo R para el tipo de retorno?