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

做什么:=为scala.collection.immutable.Vector定义的方法?

发布时间:2020-12-16 08:49:44 所属栏目:安全 来源:网络整理
导读:给出以下 scala代码: var v1 = Vector("foo")v1 :+= "" 做什么:=做,它与=有什么不同?它在哪里定义? 谢谢! PS:是的,我确实搜索了这个,但没有找到任何东西.找到了这个(http://simply.liftweb.net/index-2.3.html#prev)教程. 解决方法 Scala序列有三个运
给出以下 scala代码:

var v1 = Vector("foo")
v1 :+= ""

做什么:=做,它与=有什么不同?它在哪里定义?

谢谢!

PS:是的,我确实搜索了这个,但没有找到任何东西.找到了这个(http://simply.liftweb.net/index-2.3.html#prev)教程.

解决方法

Scala序列有三个运算符,通过向旧序列添加内容来生成新序列:,:和:.操作符只是将Scala序列与另一个(或可遍历的)连接起来.另外两个分别是prepend和append元素.

以下特殊语法:和:是由于它们的使用方式.任何以:结尾的运算符都适用于右侧的对象,而不是左侧的对象.那是:

1 +: Seq.empty == Seq.empty.+:(1)

通过对称性,另一个运算符是:尽管在这种情况下冒号没有意义.这让你写这样的东西:

scala> 1 +: 2 +: 3 +: Seq.empty :+ 4 :+ 5 :+ 6
res2: Seq[Int] = List(1,2,3,4,5,6)

请注意添加的元素最终如何与表达式中显示的位置完全相同.这样可以更容易地查看正在发生的事情.

现在,你有:=,而不是上述任何一个.碰巧的是,Scala允许任何操作符与=连接,以构成一个get-and-set操作.所以常见的增量表达式:

x += 1

实际意味着

x = x + 1

同样,

v1 :+= ""

手段

v1 = v1 :+ ""

通过将空字符串附加到旧向量来创建新向量,然后将其分配给v1.

(编辑:李大同)

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

    推荐文章
      热点阅读