Scala语法描述

时间:2015-06-30 16:38:11

标签: scala scala-2.10

我正在寻找使用scala语法描述的任何资源。 例如,现在我试图理解做这个功能的是什么:

reduceByKey(_ ++ _)

但我无法找到意味着++字符的内容...... 我在看: http://www.scala-lang.org/files/archive/spec/2.11/ 但它没有回答我的问题。 可能有人可以提供良好的资源,比如“不尽力的scala”和详细的例子

谢谢!

2 个答案:

答案 0 :(得分:3)

++只是Scala中的方法名称,例如+*。您可以在http://www.scala-lang.org/api/current/index.html#index.index-_找到以非字母开头的所有标准库方法的列表。

答案 1 :(得分:0)

除了@alexey-romanov回答

通常,++用于生成新的数据结构。

我们可以在以下表格中使用它(带示例): -

1。 ++

++用于产生新的数据结构。

前: -

val digits2=Map("One"  -> 1,"Two"  -> 2)
val digits = Map[String,Int]() ++ digits2 

digits: scala.collection.immutable.Map[String,Int] = Map(One -> 1, Two -> 2) 

注意: - 数字4的地图下面有一个键一个,值 5

val digits4=Map("One"  -> 5,"Three"-> 3,"Four"  -> 4)
val Combined1 = digits2 ++digits4

Combined1: scala.collection.immutable.Map[String,Int] = Map(One -> 5, Two -> 2, Three -> 3, Four -> 4)

2。 ++:

此运算符与上面的++完全相同。在两个操作数上使用时。

val Combined2 = digits2 ++:digits4
Combined2: scala.collection.immutable.Map[String,Int] = Map(One -> 5, Two -> 2, Three -> 3, Four -> 4)

3。 ++ =和++ =:

他们对http://www.scala-lang.org/api/current/index.html#index.index-_中定义的其他数据类型执行类似的操作。

val buf = new StringBuilder
buf += 'a'
buf ++= "bcdef"
println("buf : "+buf)

结果 buf:abcdef

val buf1 = new ArrayBuffer[String]()
buf1 +="a"
val buf2 = new ArrayBuffer[String]()
buf2 +="bcde"
val buf3 = buf1 ++=: buf2
println("buf3 = "+buf3)

结果: - buf3 = ArrayBuffer(a,bcde)