(key-> String) 및 (key-> Int)와 같은 다른 데이터 유형의 값을 포함하는 맵을 반환 할 것으로 예상하지만 Map [String, String] 또는 Map [String, Int] 중 하나를 사용할 수 있습니다. 키의 수와 순서가 고정되어 있지 않아 클래스를 사용할 수 없습니다. 내가 Map [String, Any]로 맵을 반환 할 수 있도록 String 및 Int를 일반 클래스로 래핑하는 방법이 있습니까?
HMap
@Harnish가 제안한대로 사용할 수 있지만 scala 라이브러리에는 Map[String, Either[Int, String]]
. 유형이 둘 중 하나이고 그 이상은 아님을 알고있는 경우에만 적용됩니다.
유형 Either[Int, String]
은 Left(5)
또는 로 만들 수 있습니다 Right("Hello")
. 그런 다음 일치를 사용하여 값을 테스트 할 수 있습니다.
x match {
case Left(n) => println(s"$n is a number")
case Right(s) => println(s"$s is a string")
}
업데이트 된 예 :
val dict = scala.collection.mutable.Map[String, Either[String, Int]]()
dict += ("a" -> Right(5))
dict += ("b" -> Left("Hello"))
dict map {
case (key, Right(n)) => println(s"For $key: $n is integer")
case (key, Left(s)) => println(s"For $key: $s is string")
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다