키/값의 Seq를 Map으로 변환하고 싶습니다. 시퀀스의 첫 번째 요소는 예약되어 있으므로 쌍 목록은 1 위치에서 시작됩니다.지도의 목록 표현에서 스칼라의 실제지도로
질문 : 더 많은 기능을 사용하여이 기능을 구현할 수 있습니까?
def list2Map(plainMap:Seq[String]) = {
var map = Map[String, String]()
var idx = 1;
while(plainMap.size > idx) {
val key = plainMap(idx)
idx += 1
val value = plainMap(idx)
idx += 1
map = map + (key -> value)
}
map
}
assert(list2Map(Seq("reserved slot","key0","value0","key1","value1","key2","value2")) == Map(("key0"->"value0"),("key1"->"value1"),("key2"->"value2")))
나는 스칼라에 새로운 오전, 내가 컬렉션을 반복하는 다른 많은 방법이 있다는 것을 알고 있지만 나는 요소에서 시작, 반복 당 두 개의 요소를 읽을 수있는 foreach는 방법을 발견하지 않습니다 1.
추신 : 감사합니다. 나는 모든 사람들의 반응으로 많은 것을 배우고있다 !!
은 무엇입니까 키를 뒤 커버 문제? – Dima
@Dima 더 기능적인 방법으로이 함수를 구현할 수 있다면 질문입니다. 나는 그 질문을 갱신했다. – angelcervera
샘플 입력과 예상 출력을 제공 할 수 있습니까? 간단한 예제 만 제공하면 답을 얻기에 충분한 세부 정보를 얻을 수 있습니다. –