Volviendo a Scala después de un hechizo escrito Haskell, He empezado a utilizar la palabra clave de tipo para hacer mis definiciones de clase un poco más fácil de leer, por ejemplo:tipo Scala palabra clave: la mejor manera de usarlo a través de múltiples clases
type RestfulParams = Map[String, String]
def canonicalize(params: RestfulParams): String = { ... }
El problema con el que me he encontrado es que estas definiciones de tipo necesitan vivir dentro de una clase u objeto; no son "ciudadanos de primera clase" como lo son en Haskell. Si trato de definir un tipo fuera de una clase u objeto, obtengo un compilador expected class or object definition
.
Mi problema es cómo utilizar estos tipos en varias clases y objetos en un paquete. Lo que he hecho ahora parece bastante feo:
object RestfulTypes { type RestfulParams = Map[String, String] etc }
Y luego en otro archivo de clase:
import utils.{RestfulTypes => RT}
def get(resource: String, params: RT.RestfulParams): String = { ... }
¿Existe una manera más agradable de hacer esto - y de paso hacen los gurús Scala piensan que es una buena ¿Algo o algo malo que los tipos solo se pueden definir dentro de clases/objetos?
'¿Por qué no utils.RestfulTypes._' importación? – soc