首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wrap方法与chain方法

Wrap方法与chain方法
EN

Stack Overflow用户
提问于 2018-11-11 08:34:56
回答 1查看 48关注 0票数 0

假设我们有以下内容:

代码语言:javascript
复制
sealed trait Foo
case class FullFoo[A](foo: A) extends Foo
case object EmptyFoo extends Foo

代码语言:javascript
复制
def liftToFoo[A](opt: Option[A]): Foo = 
  opt.map(a => FullFoo(a)).getOrElse(EmptyFoo)

我们可以很容易地做到:

代码语言:javascript
复制
liftToFoo(Some(123)) // FullFoo(123)
liftToFoo(None)      // EmptyFoo

但我很好奇是否有一些“可链接”的方式来调用它(而不是像上面那样包装方法):

代码语言:javascript
复制
Some(123).someFunction(liftToFoo)  // FullFoo(123)
EN

回答 1

Stack Overflow用户

发布于 2018-11-11 09:33:12

这并不完全是你想要的,但可能比你已经得到的要近一点。

代码语言:javascript
复制
Some(123).fold(EmptyFoo:Foo)(FullFoo(_))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53244784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档