【发布时间】:2011-11-10 22:04:08
【问题描述】:
假设我们有一个 Option[String],如果里面有 Some(string),我们想把它变成一个 Int 到 .toInt。我会做以下事情:
val foo: Option[String] = Some("5")
val baz: Option[Int] = foo match {
case Some(thing) => Some(thing.toInt)
case None => None
}
这很好用。但是,它似乎非常冗长,并且需要大量工作。谁能告诉我一个更简单的方法吗?
谢谢!
【问题讨论】:
-
这个特性可以抽象化:它叫做 'Functor' 。仿函数类型类可以分别与它的实例一起使用,例如:List、Tree、Option 等。如果您开始使用基于类型类的方法,这是一个非常强大的概念。
标签: scala syntax functional-programming