Scala选项映射到另一个选项

编程入门 行业动态 更新时间:2024-10-09 13:21:37
本文介绍了Scala选项映射到另一个选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

从选项映射时,有没有一种方法可以避免将可能为空的结果包装在另一个选项内.

Is there a way to avoid having to wrap a potentially null result inside another option when mapping from an option.

option.flatMap(arg => Option(arg.somePotentiallyNullValue))

例如类似

option.optionMap(arg => arg.somePotentiallyNullValue )

我的代码库中只有很多Java代码,这意味着将地图结果永久包装在其他Option调用中.

I just have a lot of Java code in our codebase that means forever wrapping the results of maps in further Option calls.

推荐答案

从可为空的类型到Option的隐式转换又如何呢?在范围内的某个地方声明这一点:

What about implicit conversion from nullable type to Option? Declare this somewhere in scope:

implicit def toOption[T](x: T) : Option[T] = Option(x)

稍后编译器会解决这个问题:

Later the compiler will figure it out:

option.flatMap(_.somePotentiallyNullValue)

由于flatMap期望Option[T]作为结果值,因此编译器使用toOption隐式转换,如下所示:

Since flatMap expects Option[T] as a result value, compiler uses toOption implicit conversion like this:

option.flatMap(arg => toOption(arg.somePotentiallyNullValue))

更多推荐

Scala选项映射到另一个选项

本文发布于:2023-11-25 21:08:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1631353.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:选项   Scala

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!