2012-03-19 4 views
4

가능한 중복 : 필자는 스칼라에서 생성 어떤 경우는 new를 사용하여 생략 할 수있는 것으로 나타났습니다
“new” keyword in Scala스칼라의 새로운 요구 될 때

. 개발자가 언제 new을 사용해야합니까? 그리고 왜 일부 개체를 사용하여 그것을 놓칠 수 있습니까?

감사

목록 그 4 문자열의 목록을 생성합니다 ("이", "a"는 "목록" "입니다"); ("foo"-> 45, "bar"-> 76)는 String to Int, 전혀 새로운 이 필요하지 않으며 clumsy 도우미 클래스도 생성하지 않습니다. 일반적 here에서 촬영

..

답변

10

는 스칼라 컬렉션 클래스는 apply 메소드를 사용하여 객체 컴패니언 공장 메소드를 정의한다. List("this","is","a","list")Map("foo" -> 45, "bar" ->76)은 해당 적용 메소드를 호출하기위한 구문 설탕입니다. 이 규칙을 사용하는 것은 상당히 관용적 인 스칼라입니다.

또한 case class C(i: Int)을 정의하면 C(i)이라고 할 수있는 C.apply(i: Int) 팩터 리 방법도 정의됩니다. 따라서 이 필요하지 않습니다.

그 외의 경우 개체를 만들려면 new이 필요합니다.

관련 문제