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

如何在Scala中添加或添加元素到元组

发布时间:2020-12-16 09:42:59 所属栏目:安全 来源:网络整理
导读:我有一个元组,想要添加一个元素,而不会丢失类型的安全。这是我想要实现的: val tuple = ("",1,1f) // (String,Int,Float)val newTuple:(String,Float,Double) = tuple :+ 1d 解决方法 值得注意的是,您还可以在几行中为此编写代码生成器: val tupadd = f
我有一个元组,想要添加一个元素,而不会丢失类型的安全。这是我想要实现的:

val tuple = ("",1,1f) // (String,Int,Float)

val newTuple:(String,Float,Double) = tuple :+ 1d

解决方法

值得注意的是,您还可以在几行中为此编写代码生成器:

val tupadd = for (n <- 2 to 20) yield {
  val t = (0 until n).map(i => ('A'+i).toChar).mkString(",")
  val u = ('A'+n).toChar
  val i = (0 until n).map(i => "x._"+(i+1)).mkString(",")
  List(
    s"implicit class TupOps$n[$t](val x: ($t)) extends AnyVal {",s"  def :+[$u](y: $u) = ($i,y)",s"  def +:[$u](y: $u) = (y,$i)","}"
  ).mkString("n")
}

打印出来,粘在一个文件中,你很好:

scala> implicit class TupOps2[A,B](val x: (A,B)) extends AnyVal {
     |   def :+[C](y: C) = (x._1,x._2,y)
     |   def +:[C](y: C) = (y,x._1,x._2)
     | }
defined class TupOps2

scala> (1,"salmon") :+ true
res15: (Int,String,Boolean) = (1,salmon,true)

(编辑:李大同)

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

    推荐文章
      热点阅读