Scala에서 ::와 :::의 차이점은 무엇입니까?


82
val list1 = List(1,2)
val list2 = List(3,4)

그때

list1::list2 returns:

List[Any] = List(List(1, 2), 3, 4)

list1:::list2 returns:

List[Int] = List(1, 2, 3, 4)

나는 그 책이 ::그것을 사용했을 때 또한 결과를 기록하는 것을 보았다 List[Int] = List(1, 2, 3, 4). 내 Scala 버전은 2.9입니다.

답변:


117

::단일 항목 :::앞에 추가하는 반면 전체 목록 앞에 추가합니다. 당신이를 넣어한다면, List앞에 ::그것을 하나 개의 항목, 중첩 된 구조의 결과로한다.


성능 이유로 사이가 차이 ::와는 :::?
null

2
성능해야 O(n)으로 n씁니다 요소 수있는.
Debilski 2015 년

내가 틀렸다면 정정하십시오. 그러나이 작업은 앞에 추가하는 것이 아니라 추가하는 것입니까?
Janac Meena

예를 훨씬 쉽게 이해할 수 있도록 것
techkuz

19

일반적으로 :

  • :: -목록 시작 부분에 요소를 추가하고 추가 된 요소가있는 목록을 반환합니다.
  • ::: -두 목록을 연결하고 연결된 목록을 반환합니다.

예를 들면 :

1 :: List(2, 3)             will return     List(1, 2, 3)
List(1, 2) ::: List(3, 4)   will return     List(1, 2, 3, 4)

귀하의 특정 질문에서을 사용 ::하면 목록이 목록 ( 중첩 목록 )으로 표시되므로 :::.

참조 : 공식 사이트의 클래스 목록

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.