Scala基礎之高階函數

定義:高階函數(帶有函數參數的函數):把一個函數作爲另一個函數的參數值

高階函數示例

(*)map:相當於一個循環,對某個集合中的每個元素進行操作(就是接受一個函數),返回一個新的集合
         val numbers = List(1,2,3,4,5,6,7,8,9,10)
		 numbers.map((i:Int)=>i*2)
		 簡寫 numbers.map(_ * 2)
		 
(*)foreach:相當於一個循環,對某個集合中的每個元素進行操作(就是接受一個函數),不返回結果
         numbers.foreach((i:Int)=>i*2)


(*)filter: 過濾,選擇滿足條件的數據
		查詢能夠被2整除的數字
		numbers.filter((i:Int)=> i%2==0) 如果是true,就返回結果

(*)zip: 合併集合
		List(1,2,3).zip(List(4,5,6))


(*)partition: 根據斷言(就是條件,通過一個匿名函數來實現)的結果,來進行分區
		舉例:把能夠被2整除的分成一個區,不能整除的分成另一個區
		numbers.partition((i:Int)=> i%2==0)

(*)find: 查找第一個滿足條件(斷言)的元素
        查詢第一個能夠被3整除的數字
		numbers.find(_%3 == 0)

(*)flatten:把嵌套的結構展開
		List(List(2, 4, 6, 8, 10),List(1, 3, 5, 7, 9)).flatten

(*)flatMap 相當於 map + flatten
		var myList = List(List(2, 4, 6, 8, 10),List(1, 3, 5, 7, 9))
		myList.flatMap(x=> x.map(_*2))
		結果 res16: List[Int] = List(4, 8, 12, 16, 20, 2, 6, 10, 14, 18)
		
		過程: (1)將List(2, 4, 6, 8, 10)和List(1, 3, 5, 7, 9)調用x=> x.map(_*2)
		     (2)再合併成一個List
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章