2012-12-08 5 views
6

책에서 스칼라에서 프로그래밍, 2 판., 저자는 "스칼라에서는 유형 테스트 및 캐스트 작성이 다소 장황하다. 연습을 권장하지 않기 때문에 의도적 인 것입니다. 일반적으로 입력 된 패턴과 패턴 일치를 사용하는 것이 더 좋습니다." 다른 곳에서는 그 구조를 사용하는 것이 "가난한 스타일"이라고 반복합니다.스칼라에서 타입 체크와 타입 캐스트가 왜 좋지 않은가?

스칼라의 패턴 매칭 구문이 훨씬 더 멋지다는 것에 전적으로 동의하지만 형식 검사와 형식 변환에 기본적으로 통용되는 설탕이 아닌가? 또는 나는 무엇인가 놓치고 있냐?

+0

항상 유형 확인을위한 설탕이 아니며, null 확인, 전환 등을 처리 할 수도 있습니다. –

답변

14

설탕이지만 매우 유용한 설탕입니다. 유형이 유형에 대한 모든 경우를 커버하지 isInstanceOf

  • 를 통과되면서 제네릭들이 인수 유형을 모르는 잊어 asInstanceOf
  • 를 호출하기 전에 isInstanceOf을 확인하지

    • 에 의해 캐스트와 함께 당신은 진짜 문제로 얻을 수 있습니다

    패턴 매칭은 모든 것을 올바르게 처리합니다. 실제로 하나 인 경우에만 인스턴스를 얻고, 제네릭에 대해 경고하고 불완전한 일치가있을 경우 경고합니다. 따라서 유형 테스트 및 캐스트가 오류가 발생하기 쉬운 패턴 매칭은 견고하며 좋은 디자인을 장려합니다.

  • 관련 문제