程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> scala入門-09 scala高階函數

scala入門-09 scala高階函數

編輯:C++入門知識

scala入門-09 scala高階函數


我們做spark開發 會使用很多spark的高階函數 所以 今天我就在linux服務上使用scala高階函數

\

聲明一個List集合:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20150114/20150114092118343.png" alt="\">

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

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

\

x表示l中每一個元素,map對l中的每一個元素進行遍歷操作,由於List中只有一種類型的元素,所以我們在執行馬屁操作的時候可以省略其類型,如下所示:

\

List集合中只有一個參數的時候,我們可以去掉參數中的括號:

\

為了能保存所有代碼,我還是使用IDEA吧

scala中的集合:

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

在scala下的org.scala.collection下創建scala類CollectionOperations

\

在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操作:



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved