Lift 's Sitemap (항목 : _*)의 콜론, 밑줄 및 별의 의미는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1124099

  •  13-09-2019
  •  | 
  •  

문제

나는 배우고있다 스칼라 그리고 승강기 동시에, 나는 비대화에 사용되는 구문을 이해하는 데 갇혀 있습니다. 사이트 맵 boot.scala에서 :

 val entries = Menu(Loc("Home", "/", "Home")) :: 
       Menu(Loc("Foo", "/badger", "Foo")) ::
       Menu(Loc("Directory Foo", "/something/foo", "Directory Foo")) :: Nil 
 LiftRules.setSiteMap(SiteMap(entries:_*))

Siteemap 매개 변수의 의미는 정확히 무엇입니까? 나는 그 가치를 본다 항목 메뉴 목록입니다. 이것은 콜론, 밑줄, 별? 처음에 나는 그것이 목록의 방법이라고 생각했지만 그런 정의를 찾을 수는 없습니다 ...

도움이 되었습니까?

해결책

좋아, 내 동료가 나에게 언급 한 후, 그는 스칼라로 프로그래밍 책, 나는 내 사본에서 검색을했고 설명했다. 섹션 8.8 반복 매개 변수. (콜론과 밑줄 사이의 공간으로 검색해야하지만 :-/) 다음과 같이 설명하는 한 문장이 있습니다.

... 콜론과 함께 배열 인수를 추가하십시오. _* 다음과 같은 기호 : scala> echo(arr: _*)

이 표기법은 컴파일러에게 각 요소를 전달하도록 지시합니다. arr 자신의 주장으로 echo, 하나의 논쟁으로서의 모든 것이 아니라.

나는 그것을 찾았다 설명이 여기에 제공됩니다 더 도움이됩니다.

그래서 x: _* ~이다 처럼 컴파일러가 처리하도록 지시하는 유형 선언 x ~처럼 반복 된 매개 변수 (일명 가변 길이 인수 목록- vararg).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top