나는 아래이 가능 뭔가 같은지도 유형을 작성하고 싶습니다 :키와 값 모두에 대해 여러 유형을 허용하는지도 유형을 만드는 방법은 무엇입니까?
VariantMap(1) = "Test"
VariantMap("a") = 42
및 VariantMap("a")
이 Option[Int]
의 유형을 가질 것이다. 내가 뭔가를 분명 잃었 그래서 만약 내가 사과
object VariantMap {
import scala.reflect.Manifest
private var _map= Map.empty[Any,(Manifest[_], Any)]
def update[T](name: Any, item: T)(implicit m: Manifest[T]) {
_map = _map(name) = (m, item)
}
def apply[T](key:Any)(implicit m : Manifest[T]) = {
val o = _map.get(key)
o match {
case Some((om: Manifest[_], s : Any)) => Some[T](s.asInstanceOf[T])
case _ => None
}
}
}
나는 스칼라에 새로 온 사람 : 여기에 지금까지 Option[Nothing]
을 초래 한 코드입니다.
키/값 유형의 고정 패턴이 있습니까? 또는 여러 가지 키 유형과 여러 가지 값 유형을 가질 수 있으며, 이전 유형 중 하나와 연관된 값 유형을 가질 수 있습니까? 아니면 아무것도하는 것입니까? 이 경우 Map [Any, Any]를 사용하고 나오는 값에 대/소문자로 일치 항목을 사용하십시오. –