스칼라에서 패턴 일치를 수행 할 때 제네릭과 지우기를 처리하는 가장 좋은 방법은 무엇입니까 (제 경우에는지도). 나는 컴파일러 경고없이 적절한 구현을 찾고있다. Map [Int, Seq [String]]을 반환 할 함수가 있습니다. 현재 코드는 다음과 같이 표시됩니다.일반지도에서 스칼라 패턴 일치
1
A
답변
1
for
(일부는 패턴 일치가 내장되어 있음)을 사용하는 것이 합리적 일 수 있습니다. 또한 우리는 Map
이 튜플의 목록임을 고려할 수 있으며, 우리의 경우 (String, Object)
유형입니다. 뿐만 아니라 우리는 그래서,이 예제 가능성이 예외를 무시합니다 :
import scala.collection.mutable.HashMap
def convert(json: Map[String, Object]): HashMap[Int, Seq[String]] = {
val converted = for {
(id: String, description: Seq[Any]) <- json
} yield (id.toInt, description.map(_.toString))
HashMap[Int, Seq[String]](converted.toSeq: _*)
}
그래서, 우리
for
이해 한 다음,
(String, Seq[Any])
유형 만 튜플을 고려
Seq[String]
에
Int
및
Seq[Any]
에
String
변환 결합합니다.
Map
을 변경할 수 있습니다.
2
스칼라 라이브러리를 사용하여 처리하십시오. Jackson을 기반으로하는 라이브러리 (예 : Play ScalaJson, 독립 실행 형을 사용하는 경우 this article 참조) 및 Jackson을 기반으로하지 않는 라이브러리 (내 선호는 Spray-Json 일 수 있지만 Argonaut 임)가 있습니다.
이러한 라이브러리 및 기타 은을 해결합니다. 손으로 그것을하는 것은 어색하고 오류가 발생하기 쉽기 때문에하지 마십시오.
관련 문제
- 1. 함수에서 스칼라 패턴 일치
- 2. 스칼라 패턴 일치 빠른 참조
- 3. 여러 유형의 스칼라 패턴 일치
- 4. 스칼라 : 패턴 일치 여러 옵션 인수
- 5. 스칼라/필터링되지 않음의 패턴 일치 구문
- 6. 스칼라 쌍 목록에 대한 패턴 일치
- 7. 스칼라 패턴 일치 및 형식 유추
- 8. 스칼라 문자열 패턴 모범 사례 일치
- 9. 스칼라 - 형식 매개 변수와 패턴 일치?
- 10. 스칼라 : 패턴 일치 방법 scala.Long 및 java.lang.Long
- 11. Play 2 웜과 스칼라 패턴 일치
- 12. Akka 스칼라 패턴 일치 및 목록
- 13. 둘 이상의 일치 패턴 일치
- 14. 스칼라 목록의 패턴 계산
- 15. SML의 패턴 패턴 일치
- 16. 연속 패턴 일치 패턴
- 17. 이 주어 패턴 일치
- 18. 스칼라 RegexParsers에서 욕심없는 일치
- 19. 클래스 [_] 유형의 패턴 일치?
- 20. 패턴 일치 D
- 21. 스칼라 패턴
- 22. 패턴 일치
- 23. 패턴 일치
- 24. 일반지도에서 조명이 잘못되었습니다.
- 25. 스칼라 패턴 매칭은 2.10
- 26. 스칼라 일치/비교 열거 형
- 27. 질감/패턴 인식/일치 일치?
- 28. 복잡성을 유지하면서 하위 클래스에서 스칼라 패턴 일치 확장
- 29. 두 개의 바인드 변수 유형에 대한 스칼라 패턴 일치
- 30. 매개 변수 목록 이상의 조합으로 스칼라 패턴 일치
이 코드가 생성하는 컴파일러 경고를 추가하십시오. –
[약간의 리팩터링 후 동일한 코드] (http://pastebin.com/1mhbj9WE). – senia
여기에 많은 문맥이 필요합니다. 먼저, 정확히 무엇을 성취하려고합니까? 당신은 하나의 사례와 단지 "패턴 매칭"이므로 의도가 명확하지 않습니다. 어떤 오류가 있고 어떤 입력 사항입니까? –