1
동적으로 변수를 캐스팅하고 싶습니다. Option[T]
. 의미는 변수 x
이 T
유형과 일치하는 경우 캐스팅은 Some(x)
을 반환하고 그렇지 않으면 None
을 반환해야합니다. 단일 맵 호출을 사용하면 과 함께 제공된 isInstanceOf[T]
을 사용하거나 괴물 케이스 스위치를 만드는 것보다 훨씬 깔끔합니다.변수를 동적으로 캐스트하는 방법 Option
나는
object OptionCast {
def apply[T](source : Any) : Option[T] = source match {
case s : T => Some(s)
case _ => None
}
}
아래의 간단한 코드를 시도했다하지만 실제로 유형을 무시 : OptionCast[Int]("some").map(_ + 2)
나에게 타입 에러를 제공합니다.
이 코드를 어떻게 다시 작성해야합니까?
try : source : T 대신? –
@StefanKunze 입력 결과가 아닌 적용 결과 유형이 지워지는 문제 (Option [T]) –
모든 유형의 캐스트에 동적 캐스트가 필요합니다. – ayvango