首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用Option的正确姿势

我们会频繁地使用Scala的Option,用以解决类似Null Object之类的问题。...我在博客《引入Option优雅地保证健壮性》与《并非Null Object这么简单》中都详细对Option的本质与运用进行剖析与介绍。 然而,Option虽然好,我们却不可“贪杯”哦!...从语义上讲,Option代表一种容器(Monad)非空即有的两种状态,例如List的headOption就是对Option的合理诠释。那么,是否只要是两种状态的业务场景,就可以使用Option呢?...他给出这样的一个案例:根据产品标题与零售商信息查询Offer: def searchOffers( productTitle: Option[String], retailer: Option[...作为这个函数的调用者,我们该怎么看待这两个Option参数传递的业务含义?

1.1K50

深入探索Scala的Option

不知是谁设计了Null这样的对象。我在文章《并非Null Object这么简单》中已经阐释了这个问题。然而不仅仅是空指针异常,当程序代码中出现各种错误时,我们的处理方式该如何呢?...现在,让我们再看看Scala语法层面的OptionOption对象并没有从根本上解决程序错误的问题,但只要使用得当,就能有效地将错误往程序的外层推,这实际上是消除副作用的惯常做法。...就是要对可能出现的错误(空对象,索引越界,类型转换异常)进行判断。...即使针对这些错误进行判断,仍然无法解决的一个问题是当对象真的出现错误时,函数实现究竟该如何处理?...None,整个函数就将即刻返回一个None对象,而非一个包裹了Location的Some对象

1.1K70
领券