4
, 그것은이이 경우에서와 같이,하지만 모든 진실하지의 유형은스칼라 REPL에서 인쇄하는 유형은 무엇입니까? 나는 REPL에있는 작은지도를 만들 때
scala> Map(1->1, 2->2)
res8: scala.collection.immutable.Map[Int,Int] = Map((1,1), (2,2))
immutable.Map 것을 알려줍니다
scala> Map(1->1, 2->2).getClass
res9: java.lang.Class[_] = class scala.collection.immutable.Map$Map2
방법 Scala는 표현식의 유형으로 인쇄 할 대상을 결정합니까?
정적 유형은 평가 된 표현식의 결과 유형이고 동적 유형은 해당 유형을 구현하는 실제 클래스입니까? –
아, 오래되고 빠르며 더러운 대답이 편집 트릭으로 이어져 내 질문이 어리석은 것처럼 보입니다. –
가장 간단한 경우 정적 메서드는 메서드 정의의 반환 형식과 정확히 일치합니다. 그렇지 않으면 (유추 된 타입 파라미터를 가진 메소드, 암시적인 파라미터에 의존하는 리턴 타입 등), 상황이 복잡해질 수 있으므로 타입 유추 엔진의 세부 사항을 체크 아웃해야 할 것이다. 동적 타입은 실행되는 메소드의 몸체에서 정확히 무엇이 일어나는지에 의해 주어진다 (여기에서 관련된 메소드는'Map.apply()'이다). –