gpt4 book ai didi

java - Java Optional 和 Scala Option 的区别

转载 作者:IT老高 更新时间:2023-10-28 20:41:53 27 4
gpt4 key购买 nike

最后,this article引入新的 Java 8 可选,声明

Optional is not nearly as powerful as Option[T] in Scala (but at least it doesn’t allow wrapping null). The API is not as straightforward as null-handling and probably much slower. But the benefit of compile-time checking plus readability and documentation value of Optional used consistently greatly outperforms disadvantages

我对 Scala 有非常基本的了解,并且我正在熟悉 Java 8 Optional,所以乍一看,我不清楚两者之间有什么区别(如果有的话) .

例如,我知道在 Scala 中我可以使用模式匹配来测试 Option 并使我的生活更轻松。但是,不包括 Scala 语法的特点,我想知道是否有一些我可以用 Scala 中的 Option 做而我不能用 Java 中的 Optional 做的事情。

希望这不会被标记为愚蠢的问题,但是每次我读到那个“强大”时,问号都会在我脑海中飞舞。

最佳答案

如果我们谈论的是与语法无关的差异,Tomasz Nurkiewicz 在他的博客文章的开头段落中几乎强调了最大的差异:

Optional was introduced in Java 8 so obviously it is not usedthroughout the standard Java library - and never will be for thebackward compatibility reasons.

(emph。我的 - 虽然我不会那么坚持“从不”,考虑到新的 default 方法)

因此,Scala 的 Option 的最大区别和最大优势似乎只是它更紧密地集成到语言的 API 中

首先,在您开始使用 Scala 的早期,您很可能会接触到它以及它的使用模式 - 最值得注意的是,通过 Scala 的 Map#get .

反过来——如果你看一下 Scala 的 Option API ,您将看到它被“拼接”到 Scala 的集合层次结构中,这意味着您可以在需要时透明地将其用作集合 - 例如比如说,您的库的最终开发人员无需处理其特殊性。

关于java - Java Optional 和 Scala Option 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21714594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com