Scala部分操作符

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值