集合相關(guān)
+=和++=(字符串拼接)
- +=方法還可以:為可變數(shù)組添加元素柴我、為map添加新的值
- -=方法可以:為可變數(shù)組減去元素靡砌、為map移除相應(yīng)的值
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)
::(構(gòu)造列表)
- 用法為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:+2
res2: 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)
}
1
2
3
4
-> 返回一個二元元組
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))
下劃線_相關(guān)
通配符
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
將方法轉(zhuǎn)換成函數(shù)
- val f1 = m _
- 在方法名稱m后面緊跟一個空格和下劃線告訴編譯器將方法m轉(zhuǎn)換成函數(shù),而不是要調(diào)用這個方法
遞歸調(diào)用
- 把里面每個元素提取出來
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)
代表某一類型的默認(rèn)值
- 加不加空格都可以
- 對于Int類型來說介褥,它是0
- 對于Double來說座掘,它是0.0
- 對于引用類型來說递惋,它是null
scala> var a:Int = _
a: Int = 0
scala> var a:Int =_
a: Int = 0
其他
=>(匿名函數(shù))
匿名函數(shù)定義:
- (形參列表) => {函數(shù)體}
- 左邊的參數(shù)到右邊的價格,比如:(x:Int) => x+1
- 可以有一個變量接受