2009-09-29 6 views
4

나는 스칼라 소스 코드를 포함한 자바 소스 코드를 읽었다.

나는 키워드 $colon은 무엇을 의미 하는가 Nil.$colon$colon(Object arg)

발견? 그리고이 라인은 무엇을 의미합니까?

답변

14

$ 콜론은 기호에 대한 mangling입니다. : (및 다른 문자)는 메소드 이름에 대해 Java에서는 잘못된 문자이지만 scala에서는 허용되므로 올바른 이름으로 인코딩하는 전략이 필요합니다. 따라서 $ 콜론

이 코드는 arg를 단일 요소로 List를 구성하여 arg를 빈 목록에 추가하는 arg :: Nil로 변환됩니다.

+0

나는 당신의 대답을 이해하고 있기 때문에 나는 묻고 싶다 : 'mangling'은 정확히 무엇을 의미합니까? – enguerran

+3

기본적으로 소스 코드에있는 것보다 런타임에 사용되는 다른 식별자를 사용한다는 의미입니다. http://en.wikipedia.org/wiki/Name_mangling을 참조하십시오. –