2017-09-14 5 views
2

초보자를 스칼라, 메신저 모음을 다루는 상징적 인 표기법을 혼란 찾으십시오. 목록 또는 벡터에 항목을 추가하려면 내가 사용할 수 있습니다 : 나는벡터의 앞에 추가 scala

을 사용할 수있는 목록에 앞에 추가하려면 내가 이해

List(1, 2, 3) :+ 4 

이 방법

List(1, 2, 3).:+(4) 

의 중위 형태로

List(1, 2, 3).+:(4) 

중위 형태 나에게 컴파일 오류를 제공하지만

List(1,2,3) +: 4 
Error:(121, 16) value +: is not a member of Int 
Vector(1,2,4) +: 4 
      ^
01 23,516,

사람이 방법은 오른쪽에있는 요소에 의미 날 스칼라

답변

3

, 오른쪽 연관되는 결장 :의 단부 중위 표기법에 사용되는 방법들을 계발 할. 당신이 필요합니다 그 목록에 명시 적으로 호출이기 때문에이 발생하지 않는 점 표기법으로 List[T]를 사용하는 경우

4 +: List(1,2,3) 

. 중위 표기법을 사용할 때, 컴파일러는 추가적인 구문 desugaring을 수행합니다. 이 :

List(1,2,3) +: 4 

4.+:(List(1,2,3)) 

으로 켜져 그러나 +:Int에를 찾을 수없는, 그래서 뿌려줍니다.

+0

감사합니다 컬렉션 API를 수정하는 기본 방법과 오버로드 된 연산자를 해석하는 방법에 대한 자료에서 스칼라 문서는 꽤 희박합니다 –

+0

@LukeDeFeo https : //docs.scala-lang으로 시작하겠습니다. .org/overviews/collections/overview.html –