55

当我试图在 Option[String] 类型的字段中影响 String 类型的值时,我收到以下错误:

type mismatch; found : String required: Option[String]

如何影响myValue:String字段中的值myField:Option[String]

4

4 回答 4

80

您也可以只使用Option(myValue)将 null 转换为None和非 null 转换为Some.

于 2012-07-29T11:17:26.560 回答
17

您可以Option像这样包装任何对象:

val opt = Some("foo")
于 2012-07-29T10:01:19.217 回答
7

您可以将对象包装在 Some 类中

val myField = Some(myValue)

或者,如果您没有任何东西,请通过

None

它称为选项模式

http://www.codecommit.com/blog/scala/the-option-pattern

于 2012-07-29T10:02:28.283 回答
6

如果要将空字符串转换为 None 更通用的解决方案是:Option(str).filter(_.nonEmpty)

于 2017-11-20T11:05:19.373 回答