Scala将Option [T]转换为String

时间:2015-09-17 15:19:03

标签: scala

scala中是否存在任何与此等效的本机函数?

def strConvert[T](v: Option[T]): String = {
    if (v.isDefined)
      v.get.toString
    else
      ""
}

3 个答案:

答案 0 :(得分:10)

对于通用T,您可以避免使用map - v.map(_.toString).getOrElse("")

答案 1 :(得分:4)

scala> Some(1).fold("")(_.toString)
res0: String = 1

scala> None.fold("")(_.toString)
res1: String = ""

答案 2 :(得分:3)

Option是一个单子。在FP中,当使用monad时,如果monad包含状态(即None以外的值),则定义要发生的事情。否则,你继续前进。

val ostring: Option[String] = functionThatGetsOptionString()

ostring.map { s =>
   functionThatUsesString(s)
}

map函数中,如果sOption,则Some(String)将包含原始字符串,否则Option将不会执行内部正文是None