2011-11-10 2 views
10

Option [String]이 있고 거기에 Some (string)이 있으면 이것을 Int로 변환하려고합니다. 나는 다음을 할 것이다 :스칼라에서 Option [T]를 Option [U]로 변환

val foo: Option[String] = Some("5") 
val baz: Option[Int] = foo match { 
    case Some(thing) => Some(thing.toInt) 
    case None => None 
} 

위대한 작품. 그러나, 이것은 매우 장황하고 많은 일처럼 보입니다. 누구든지이 일을하는 더 간단한 방법을 보여줄 수 있습니까?

감사합니다.

+0

이 기능을 추출 할 수 있습니다 :

http://www.scala-lang.org/api/rc/scala/Option.html

는 또한이 컨닝 페이퍼가 도움이 될 수 있습니다 : 그냥 scaladoc 살펴보고 그것이라고 'Functor'. Functor 타입 클래스는 각각 List, Tree, Option 등의 인스턴스와 함께 작동 할 수 있습니다. 타입 클래스 기반 접근 방식으로 사용하기 시작하면 상당히 강력한 개념입니다. – AndreasScheinert

답변

10

당신이 필요가 foo.map(_.toInt)