2013-08-29 7 views
1

에 요소를 앞에 추가 할 수 없습니다내가이 데이터 구조를 가지고 목록

var index : List[(Int, List[Int])] = Nil 

그리고, 어떤 점에서 나는 나의 인덱스에 몇 가지 요소를 추가 할 수 있습니다. 내가 수행하려고 :

index(position)._2 = new_elem :: index(position)._2 

하지만이 reassignment to val를하고있는 중이 야하는 컴파일러는 불평.

index = (p, Nil) :: index 

가 어떻게이 문제를 극복 할 수

가 도움이 될 수 있다면

, 나는 다음 코드 줄에 의해 인덱스에 새 위치를 만들?

감사합니다.

+2

List 대신 ListBuffer를 사용하십시오. – rocky3000

답변

1

귀하의 문제가 있음을 참조하십시오 : 인덱스 변수입니다 (변경 될 수 있습니다)하지만, 목록은 불변의 데이터 구조입니다, 전체 목록 만 변경할 수 있습니다.

MutableList 또는 Map을 사용할 수 있습니다.

2

튜플의 한 부분 만 재 할당 할 수 있습니다. 시도 : Scala API Tuple2

index(position) = (index(position)._1, new_elem :: index(position)._2) 

_1_2val

+0

문제를 해결하는데 도움이되는 귀하의 답변에 감사드립니다. Howerever 이제이 새로운 오류가 있습니다. '값 업데이트가 List [(Int, List [Int])'의 멤버가 아닙니다. 어떤 생각? – Aslan986

+0

다른 사람들이 말했듯이, 외부 목록 (튜플을 포함하는 튜플이 아니라 튜플 내의 튜플이 아닌)을 'MutableList'로 업그레이드 할 수 있습니다. 이렇게하면 http://www.scala-lang.org/api/current/index.html#scala.collection.mutable.MutableList (아래로 스크롤하여 '업데이트')에 액세스 할 수 있습니다. 스칼라 API를 좋아하고 거기에 도착하는 데 충분한 정보를 제공해야합니다. 희망이 도움이! – Mattsjo

관련 문제