scala入門-09 scala高階函數

咱們作spark開發 會使用不少spark的高階函數 因此 今天我就在linux服務上使用scala高階函數linux


聲明一個List集合:web


List集合所在的包已經被預約義自動引入,因此此處就不須要在引入包了,這裏直接使用List實例化對象,其實用List的object對象的apply方法app

咱們使用map函數把list中的每一個值都乘以3:函數


x表示l中每個元素,map對l中的每個元素進行遍歷操做,因爲List中只有一種類型的元素,因此咱們在執行馬屁操做的時候能夠省略其類型,以下所示:spa


List集合中只有一個參數的時候,咱們能夠去掉參數中的括號:命令行


爲了能保存全部代碼,我仍是使用IDEA吧scala

scala中的集合:orm

集合主要有List、Set、Tuple、Map等對象

在scala下的org.scala.collection下建立scala類CollectionOperationsip


在IDEA中建立一個List實例:


咱們看一下List代碼實現:


源碼中說明了其內部是apply的方式來完成實例化的:

使用一樣的方式實例化Set:


咱們可也看下Set實例化對象的實現:


接下來咱們在linux命令行終端中砍下集合的操做,首先看Set:


發現Set中不會存儲重複的元素

下面看下Tuple的申明和使用:


tuple 訪問的時候下標是從1開始的

對於Tuple而言,若是隻有兩個元素的時候咱們還可使用以下方式建立:


接下來咱們看下Map的定義吧:


Map自己使用的是可變參數的方式,因此能夠給Map賦多個值:


咱們看一下Option類型,Option表明了一個無關緊要的值:


Option有兩個子類:Some 和None,下面看看Option的使用:



接下來咱們看下filter的使用:


對集合的zip操做:



下面咱們看下partition對集合的切割操做:


使用flatten的多集合進行扁平化操做:


flatMap是map和flatten操做的集合,先進行map操做後再進行flatten操做:

相關文章
相關標籤/搜索