加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在scala中使列表像元组一样解构,或者像列表一样迭代元组

发布时间:2020-12-16 10:07:47 所属栏目:安全 来源:网络整理
导读:我有一些变量,我想通过一个函数运行它们来创建新的变量.所以基本上我现在得到了 val formatted1 = format(raw1)val formatted2 = format(raw2)val formatted3 = format(raw3) 有没有办法在一行中完成这一切?寻找类似的东西 val (formatted1,formatted2,form
我有一些变量,我想通过一个函数运行它们来创建新的变量.所以基本上我现在得到了

val formatted1 = format(raw1)
val formatted2 = format(raw2)
val formatted3 = format(raw3)

有没有办法在一行中完成这一切?寻找类似的东西

val (formatted1,formatted2,formatted3) = (raw1,raw2,raw3).map(format)

但这似乎以不兼容的方式组合了List的特征和元组的特征.

解决方法

您可以映射元组,但是如果您将项目放在列表中:

val List(formatted1,formatted3) = List(raw1,raw3).map(format)

这适用于许多其他集合,如Seq,Array等(两边的类型必须相同!但你可以在左边有更多的通用类型:例如val Seq(…)= List(… )).

对于列表(但不适用于其他类型),您还可以编写如下内容:

val formatted1::formatted2::formatted3::Nil = List(raw1,raw3).map(format)

从Scala 2.10开始,您可以使用Seq执行相同的技巧:

val formatted +: formatted2 +: formatted3 +: _ = ....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读