Scala部分操作符

来源:互联网 发布:螺纹铣刀铣内螺纹编程 编辑:程序博客网 时间:2024/05/21 09:09
object Operator{  def main(args : Array[String]){    val list1 = List("Java","Scala","C++")    val list2 = List("JS","C#")    val str = "name"    println(list1 ++ list2)    // List(Java, Scala, C++, JS, C#)    println(str ++ list1)    // Vector(n, a, m, e, Java, Scala, C++)    println(list1 ++: list2)    // List(Java, Scala, C++, JS, C#)    println(list1 ++: str)    // Vector(Java, Scala, C++, n, a, m, e)    println(str ++: list1)    // List(n, a, m, e, Java, Scala, C++)    println(str +: list1)    // List(name, Java, Scala, C++)    println(str :+ list1)    // Vector(n, a, m, e, List(Java, Scala, C++))    println(list1 :+ str)    // List(Java, Scala, C++, name)    println(list1 +: str)    // Vector(List(Java, Scala, C++), n, a, m, e)    println(list1 :: list2)    // List(List(Java, Scala, C++), JS, C#)    println(list2 :: list1)    // List(List(JS, C#), Java, Scala, C++)    println(list1 ::: list2)    // List(Java, Scala, C++, JS, C#)    println(list2 ::: list1)    // List(JS, C#, Java, Scala, C++)    println((str /: list1)(_ + " @ " + _))    // name @ Java @ Scala @ C++    println((list1 :\ str)(_ + " + " + _))    // Java + Scala + C++ + name    //++  }}

++为连接两个List,合成一个,注意,两侧都要是List,所以第二句print的str会被分解为四个char型
++: 和++相似
+:和:+,冒号一侧要是List,加号一侧要是单元素,合成一个
::是List的成员函数,因此右侧必须是List,不然会报错,该函数会将左侧当作一个元素加入到右侧List的第一位
:::也是List的成员函数,故右侧必须是List,该函数要求左侧也必须是List,然后合成一个大List
/:,将单元素放在List前,然后对每两个元素进行后面的操作
:\,与前相反,将单元素放在List后

参考资料:
http://www.howsoftworks.net/scala.api/scala.collection.immutable/list_colonbslash.html

0 0
原创粉丝点击