java option作用_java – 类Option [T]的意义是什么?
发布日期:2021-06-24 12:26:48 浏览次数:2 分类:技术文章

本文共 878 字,大约阅读时间需要 2 分钟。

如果你强迫自己永远不要使用get,你会得到Option的更好的点。这是因为get相当于“确定,送我回到空地”。

所以,拿你的例子。你如何调用显示而不使用get?这里有一些替代方案:

getPerson2 foreach (_.display)

for (person

getPerson2 match {

case Some(person) => person.display

case _ =>

}

getPerson2.getOrElse(Person("Unknown", 0)).display

这些替代方法都不会让你调用显示在不存在的东西。

至于为什么存在,Scala不告诉你你的代码应该如何写。它可以轻轻地刺激你,但如果你想回到没有安全网,这是你的选择。

你把它钉在这里:

is the only advantage of Option[T] is

that it explicitly tells the

programmer that this method could

return None?

除了“唯一”。但让我以另一种方式重申:Option [T]对T的主要优点是类型安全。它确保你不会发送一个T方法到一个可能不存在的对象,因为编译器不会让你。

你说你必须在这两种情况下测试可空性,但如果你忘记 – 或不知道 – 你必须检查null,编译器会告诉你吗?或者您的用户?

当然,因为它与Java的互操作性,Scala允许null,就像Java一样。所以,如果你使用Java库,如果你使用写得不好的Scala库,或者如果你使用写得很差的个人Scala库,你仍然必须处理空指针。

选项I的其他两个重要优点是可以想到的是:

>文档:方法类型签名将告诉你是否总是返回一个对象。

>单能组合性。

后者需要更长的时间才能完全理解,它不是很适合简单的例子,因为它只显示其复杂的代码的实力。所以,我会举一个例子如下,但我很清楚,它几乎不会有什么,除了已经得到它的人。

for {

person

email

} yield (person, email)

转载地址:https://blog.csdn.net/weixin_32697149/article/details/114743010 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql 主主同步配置_MySQL 主主同步配置
下一篇:java多线程 门闩_Java线程与并发编程实践----同步器(倒计时门闩,同步屏障)...

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年03月31日 15时53分49秒