如何定义与Map [String,Option [String]]对应的类型?

时间:2015-04-25 18:38:14

标签: scala

给出以下采用Map[String, Option[String]]参数的方法:

def myMethod(m: Map[String, Option[String]]) = {
  ...
}

如何定义实现MyMap的新类型Map[String, Option[String]],以便该方法如下所示:

def myMethod(m: MyMap) = {
  ...
}

2 个答案:

答案 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