case x => println(x.getClass)
너무 쉽게 :-)
는 기본적으로, 당신은 단지 당신이 표준을 사용할 수 있습니다 (이 경우 x
)의 이름으로 포괄 문에서 값을 바인드해야 getClass 메소드를 사용하여 유형을 판별하십시오.
유형을 기반으로 특정 논리를 수행하려는 경우 문제가 발생할 가능성이 큽니다. 인라인으로 정의하고 싶지 않은 '기본'사례가 필요한 경우 부분 일치 함수로 성명을 작성할 수 있습니다. 예를 들어
scala> val defaultHandler: PartialFunction[Any, Unit] = {
| case x: String => println("String: " + x)
| }
defaultHandler: PartialFunction[Any,Unit] = <function1>
scala> val customHandler: PartialFunction[Any, Unit] = {
| case x: Int => println("Int: " + x)
| }
customHandler: PartialFunction[Any,Unit] = <function1>
scala> (customHandler orElse defaultHandler)("hey there")
String: hey there
"Any"는 "String"과 "Float"의 유일한 상위 유형 인 경우 이상적으로 트래 피킹하지 않을 것입니다. –
나는 그것이 보내는 모든 유형을 문서화하지 않은 제 3 자 라이브러리에서 호출 된 배우가 있습니다 ....하지만 빠른 답변 주셔서 감사합니다! –