SCALA中:: , +:, :+, :::, +++的区别
List集合
准备数据
var list1 = List(1,2,3) var list2 = List(4,5,6)
-
:: 操作符 :会将::前的元素做为::后的元素中的第一个元素进行储存
println(list1 :: list2) //List(List(1, 2, 3), 4, 5, 6) println(2 :: list1) //List(2, 1, 2, 3)
-
.::操作符:会将操作符后的元素会放在操作符前的元素的第一个位置进行存储
println(list1 .::(5)) //List(5, 1, 2, 3) println(list1 .::("abc")) //List(abc,5, 1, 2, 3)
-
++操作符:会拼接操作符俩段的List集合,只能拼接相同类型
println(list1 ++ list2) //List(1, 2, 3, 4, 5, 6) println(list2 ++ list1) //List(4, 5, 6, 1, 2, 3)
-
:::操作符:与++操作符相同,但是:::操作符只能用于连接List集合,不能连接Array数组
println(list1 ::: list2) //List(1, 2, 3, 4, 5, 6)
Array数组
准备数据
var array = Array(1,2,3) var array1 = Array(4,5,6)
-
:+ 或 +:操作符:拼接数据时,与:相连的是Array数组,与+相连的是容易类型的数据,如果连接符俩端都是Array类型的数据,将会把与+相连的数据做为一个数据存放到:后的数组中的一个位置中
println((array :+ 6).toBuffer) //ArrayBuffer(1, 2, 3, 6) println((array :+ "abc").toBuffer) //ArrayBuffer(1, 2, 3, abc) println((6 +: array).toBuffer) //ArrayBuffer(6, 1, 2, 3) println(array.toBuffer +: array1.toBuffer) //ArrayBuffer(ArrayBuffer(1, 2, 3), 4, 5, 6) println(array.toBuffer :+ array1.toBuffer) //ArrayBuffer(1, 2, 3, ArrayBuffer(4, 5, 6))
-
++操作符:将俩个数组连接
println(array.toBuffer ++ array1.toBuffer) //ArrayBuffer(1, 2, 3, 4, 5, 6) println(array1.toBuffer ++ array.toBuffer) //ArrayBuffer(4, 5, 6, 1, 2, 3)