2014-03-13 2 views
1

지도의 키로 (ArrayInt, Int)를 사용하는 방법은 무엇입니까? 기본적으로 크기 9의 Integer 배열과 Integer를 Map의 키로 지정해야합니다.Map (배열 [Int] (9), Int)을 키로 사용하는 방법은 무엇입니까?

내가 좋아하는 뭔가를 시도 :

scala> var A:Map[(Array[Int](9), Int),Int] = Map() 
<console>:1: error: ')' expected but '(' found. 
     var A:Map[(Array[Int](9), Int),Int] = Map() 
          ^

내가 this 같은 몇 가지 다른 질문 보았다,하지만 정말 그것을 얻을 수 없었다!

또는 튜플 대신 클래스를 사용하면 어떻게 될까요? 스칼라에서 가능합니다. 몇 가지 게시물은 사례 클래스를 사용하여 보았지만 enum 일과 같다고 생각합니다.

추 신 : 오늘은 스칼라에서 시작되었습니다!

+1

는, 주어진 당신은 키의 * type *만을 선언하고 있습니다; 특정 구현 세부 사항을 선언하지 않습니다. – christopher

+1

Christopher가 맞다. Array [Int]를 키로 지정할 수 있지만, 크기를 지정할 수 없다. – serejja

+0

오, 나중에 데이터를 추가 할 때 크기를 할당 할 수 있습니까? – AdRoiT

답변

5

(K, V)은 유형 생성자 인 Tuple2[K, V]의 구문 설탕입니다. 따라서 K은 유형이어야합니다.

즉, Array[Int]이 유형입니다.

Array[Int](9)

는 형식이 아닙니다, 그것이 Array 하나 개의 요소가 포함되어 Int의의 반환 동반자 개체에 메서드 호출 : 당신은 크기를 지정할 수 있을지는 확실하지 않다 9.

관련 문제