集合相关
+=和++=(字符串拼接)
+=方法还可以:为可变数组添加元素、为map添加新的值
-=方法可以:为可变数组减去元素、为map移除相应的值
scala> var s:String = "a"scala> s+="b"scala> s++="c"scala> s res15: String = abc scala> var a = Map(1->2,2->3) scala> a += (3->4) scala> a res: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 2 -> 3, 3 -> 4)
::(构造列表)
用法为x::list,其中x为加入到头部的元素,无论x是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1
x::list等价于list.::(x)
scala> "A"::"B"::Nil res0: List[String] = List(A, B)
:::方法:只能用于连接两个List类型的集合
:+和+:(列表追加元素)
:+方法:用于在尾部追加元素
+:方法:用于在头部追加元素
只要记住冒号永远靠近集合类型
scala> List(1,2,3) res1: List[Int] = List(1, 2, 3) scala> res1:+2res2: List[Int] = List(1, 2, 3, 2) scala> 3+:res1 res4: List[Int] = List(3, 1, 2, 3)
++(连接两个Seq)
列表、集合、字符串、Map
:::方法:只能用于连接两个List类型的集合
scala> val a = List(1,2,3) a: List[Int] = List(1, 2, 3) scala> a++List(4,5,6) res7: List[Int] = List(1, 2, 3, 4, 5, 6)
<-(集合遍历)
var arr = Array(1,2,3,4)for (i <- arr) { println(i) }1234
-> 返回一个二元元组
scala> var a = List(1,2,3) a: List[Int] = List(1, 2, 3) scala> var b = List(4,5,6) b: List[Int] = List(4, 5, 6) scala> val four = a -> b four: (List[Int], List[Int]) = (List(1, 2, 3),List(4, 5, 6))
下划线_相关
通配符
1.import scala.math._ 2.模式匹配 object MatchTest extends App { def matchTest(x: Int): String = x match { case 1 => "one" case 2 => "two" case _ => "many" } println(matchTest(3)) }
访问元组
元组的访问在scala中是从1开始
scala> val tup = (1,2,3) tup: (Int, Int, Int) = (1,2,3) scala> tup._1 res1: Int = 1
将方法转换成函数
val f1 = m _
在方法名称m后面紧跟一个空格和下划线告诉编译器将方法m转换成函数,而不是要调用这个方法
递归调用
把里面每个元素提取出来
scala> sum(1 to 100: _*) res: Int = 5050
指代集合中的每个元素
scala> var list = List(1,2,3,4)list: List[Int] = List(1, 2, 3, 4) scala> list.map(_*2) res2: List[Int] = List(2, 4, 6, 8)
代表某一类型的默认值
加不加空格都可以
对于Int类型来说,它是0
对于Double来说,它是0.0
对于引用类型来说,它是null
scala> var a:Int = _ a: Int = 0scala> var a:Int =_ a: Int = 0
其他
=>(匿名函数)
匿名函数定义:
(形参列表) => {函数体}
左边的参数到右边的价格,比如:(x:Int) => x+1
可以有一个变量接受
作者:他与理想国
链接:https://www.jianshu.com/p/16bc484d0f37