给出以下采用Map[String, Option[String]]
参数的方法:
def myMethod(m: Map[String, Option[String]]) = {
...
}
如何定义实现MyMap
的新类型Map[String, Option[String]]
,以便该方法如下所示:
def myMethod(m: MyMap) = {
...
}
答案 0 :(得分:6)
type MyMap = Map[String, Option[String]]
答案 1 :(得分:1)
使用类型别名,例如
type MyMap = Map[String, Option[String]]
更通用的是包含类型参数
type MyMap[T] = Map[T, Option[T]]
然后可以将类型实例化为String
,
val a: MyMap[String] = Map("a"->Some("aa"))
a: MyMap[String] = Map(a -> Some(aa))
在定义方法时,请注意
def myMethod[T](m: MyMap[T]) = m.keys.size
myMethod: [T](m: MyMap[T])Int
和
def myMethodStr(m: MyMap[String]) = m.keys.size
myMethodStr: (m: MyMap[String])Int