【问题标题】:Scala syntax descriptionScala 语法描述
【发布时间】:2015-06-30 16:38:10
【问题描述】:

我正在寻找任何具有 scala 语法描述的资源。 例如,现在我试图理解这个函数是做什么的:

reduceByKey(_ ++ _)

但我无法找到 ++ 字符的含义... 我在看: http://www.scala-lang.org/files/archive/spec/2.11/ 但它没有回答我的问题。 可能有人可以通过很好的详细示例来建议像“理解 scala”这样的好资源

谢谢!

【问题讨论】:

    标签: scala scala-2.10


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      除了@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) 
      

      注意:- 在 digits4 的地图下方有一个键 One,其值为 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)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-12
        • 1970-01-01
        • 1970-01-01
        • 2013-07-27
        • 2014-09-09
        相关资源
        最近更新 更多