首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有scala标识函数吗?

有scala标识函数吗?
EN

Stack Overflow用户
提问于 2009-11-25 23:00:16
回答 1查看 33K关注 0票数 74

如果我有像List[Option[A]]这样的东西,并且我想把它转换成List[A],标准的方法是使用flatMap

代码语言:javascript
复制
scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))

scala> l.flatMap( o => o)
res0: List[java.lang.String] = List(Hello, World)

现在o => o只是一个身份函数。我本以为会有办法这样做的:

代码语言:javascript
复制
l.flatMap(Identity) //return a List[String]

然而,我不能让它工作,因为你不能泛化一个object。我尝试了一些方法,但都无济于事;有人用过这样的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2009-11-26 05:03:54

你可以给类型推断器一点帮助:

代码语言:javascript
复制
scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))

scala> l.flatten[String]
res0: List[String] = List(Hello, World)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1797502

复制
相关文章

相似问题

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