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

在Scala中交换收集元素有什么好的功能?

发布时间:2020-12-16 09:22:23 所属栏目:安全 来源:网络整理
导读:在我的一个项目中,一个常见用例不断出现.在某些时候,我有一些有序的收藏(List,Seq等…没关系)和这个集合的一个元素.我想做的是使用它的以下元素(如果此元素存在)或某些时候与前面的元素交换给定的元素. 我很清楚使用过程编程技术来实现这一点的方法.我的问题
在我的一个项目中,一个常见用例不断出现.在某些时候,我有一些有序的收藏(List,Seq等…没关系)和这个集合的一个元素.我想做的是使用它的以下元素(如果此元素存在)或某些时候与前面的元素交换给定的元素.

我很清楚使用过程编程技术来实现这一点的方法.我的问题是通过功能编程(Scala)来解决问题的好方法?

感谢大家的答案.我接受了我自己最了解的那一个.因为我不是一个功能性的程序员(但是),我很难决定哪个答案是最好的答案.他们在我看来都很好.

解决方法

以下是与列表中的下一个元素交换的功能版本,您只需构建一个新的列表,并将元素交换.

def swapWithNext[T](l: List[T],e : T) : List[T] = l match {
  case Nil => Nil
  case `e`::next::tl => next::e::tl
  case hd::tl => hd::swapWithNext(tl,e)
}

(编辑:李大同)

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

    推荐文章
      热点阅读