40得票2回答
如何使用高阶函数展开选项列表?

使用Scala 2.7.7: 如果我有一个选项列表,我可以使用for推导式将它们展平:val listOfOptions = List(None, Some("hi"), None) listOfOptions: List[Option[java.lang.String]] = List(N...

38得票6回答
在Scala中是否应该添加/创建从T到Option[T]的隐式转换?

这是提高代码效率的机会吗(对于程序员):我发现不得不用Some来包装一些东西,比如Some(5),有点烦人。那么考虑使用类似以下的语法: implicit def T2OptionT( x : T) : Option[T] = if ( x == null ) None else Some(...

35得票4回答
为什么Option没有fold方法?

我想知道为什么scala.Option没有定义一个像这样的fold方法:fold(ifSome: A => B , ifNone: => B) 等同于map(ifSome).getOrElse(ifNone) 有没有更好的方法来替代使用 map + getOrElse?

35得票9回答
在Scala中检查字符串是否为空或不存在

我有一个Option[String]。 我想检查是否存在字符串,如果存在,则确保它不为空。def isBlank( input : Option[String]) : Boolean = { input.isEmpty || input.filter(_.trim....

33得票4回答
在Scala中将Option转换为Either

假设我需要在Scala中将Option[Int]转换为Either[String, Int]。我想像这样做: 假设我需要在Scala中将Option[Int]转换为Either[String, Int]。我想像这样做:def foo(ox: Option[Int]): Either[Stri...

31得票4回答
Scala选项 - 摆脱if(opt.isDefined){}

我的代码中出现了以下代码模式:val opt = somethingReturningAnOpt if (opt.isDefinedAt) { val actualThingIWant = opt.get } 有没有一种简化这个过程的方法?(它看起来过于复杂且有代码气味)。理想情况下,...

30得票6回答
测试Option值的更好方法?

我经常会遇到某个类型为T的Option[T],希望测试该选项的值是否与某个值相等。例如: val opt = Some("oxbow") if (opt.isDefined && opt.get == "lakes") //do something 以下代码等效,...

30得票1回答
Scala是否有一个API方法,可以将Seq [Option [T]]转换为Seq [T]?

是否有Scala API方法可以将Seq[Option[T]] -> Seq[T]转换? 您可以通过以下方式手动完成: seq.filter(_.isDefined).map(_.get) 想知道是否有一种通用的API方法可以完成上述操作。

30得票5回答
使用Scalaz将选项列表转换为列表选项

我想将一个List[Option[T]]转换成Option[List[T]]。函数的签名类型为 def lo2ol[T](lo: List[Option[T]]): Option[List[T]] 预期的行为是将仅包含Some的列表映射为包含元素内部的元素列表的Some。另一方面,如果输...

27得票3回答
将2个选项合并成1个

在Scala中是否有预定义的函数x,可以将两个Option合并为一个?Some(a) x None => Some(a) None x Some(b) => Some(b) None x None => None