scala – Option.map(null)返回Some(null)
发布时间:2020-12-16 09:50:50 所属栏目:安全 来源:网络整理
导读:我想这个代码片段返回我而不是Some(null): Option(x).map(x.getNullValue) // returns Some(null) 我听说Scalaz库有处理这种情况的功能.那么我如何使用scalaz和标准Scala库实现我的目标? 解决方法 你可以在这里使用flatMap和Option.apply方法,而不是拉入sc
我想这个代码片段返回我而不是Some(null):
Option(x).map(x.getNullValue) // returns Some(null) 我听说Scalaz库有处理这种情况的功能.那么我如何使用scalaz和标准Scala库实现我的目标? 解决方法
你可以在这里使用flatMap和Option.apply方法,而不是拉入scalaz:
Option(initialValue).flatMap(x => Option(x.getNullValue)) 这是有效的,因为Option.apply方法智能地处于null状态: val x: String = null Option(x) //None Option("foo") //Some("foo") 所以如果你完全知道价值,你可以简单地做: Option(x.getNullValue) 您还可以在Option上使用其他方法,如filter,orElse或getOrElse,具体取决于具体情况: Option(initialValue).map(_.getNullValue).filter(_ != null) Option(initialValue).orElse(Option(x.getNullValue)) Option(x.getNullValue).getOrElse(defaultValue) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |