보다 일반적인 방법으로 ArrayBuffer 및 Vector를 어떻게 참조 할 수 있습니까?Scala에서 "list"를 참조하는 일반적인 방법은 무엇입니까?
예를 들어, 내 함수 중 하나는 Vector를 인수로 받고 다른 함수는 ArrayBuffer를 반환합니다. 내가 사용할 수있는 일반적인 "iterface"는 무엇입니까?
예를 들어 자바에서는 리스트 또는 콜렉션 인터페이스를 사용할 수 있습니다.
보다 일반적인 방법으로 ArrayBuffer 및 Vector를 어떻게 참조 할 수 있습니까?Scala에서 "list"를 참조하는 일반적인 방법은 무엇입니까?
예를 들어, 내 함수 중 하나는 Vector를 인수로 받고 다른 함수는 ArrayBuffer를 반환합니다. 내가 사용할 수있는 일반적인 "iterface"는 무엇입니까?
예를 들어 자바에서는 리스트 또는 콜렉션 인터페이스를 사용할 수 있습니다.
컬렉션 클래스 간의 상속 관계에 대한 개요는 here을 참조하십시오.
IndexedSeq은 ArrayBuffer와 Vector의 공통된 특징입니다.
편집 : IndexedSeq 서열 대 다음 문서에서
:이 구현은 어떤 경우에 ArrayBuffer 및 벡터에 의해 제공 될 것이다 이러한 맥락에서, 당신은 단지뿐만 아니라, 서열을 사용할 수 있다는 것을 의미 Indexed sequences do not add any new methods wrt Seq, but promise efficient implementations of random access patterns.
.
나는 Map
에도 적용될 SeqLike 이상의 일반 TraversableOnce을 사용할 것입니다.
Traversable 또는 Seq를 사용하지 않는 이유는 무엇입니까? – gruenewa
맞습니다. Vector와 ArrayBuffer (+1)에 충분합니다. –
'SeqLike'는이 경우별로 유용하지 않습니다. 실제로는 형식 매개 변수로서의 실제 표현을 갖기 때문입니다. 'Seq'는 관용적 인 선택이며, Traversable보다 덜 제한적이며 Traversable의 것보다 더 좋은 성능을내는 몇몇 메소드의 구현을 가지고 있습니다. –
http://stackoverflow.com/questions/1722137/scala-2-8-collections-design-tutorial/1724807도 참조하십시오. –