curring函式,以及高階函式

2021-10-08 22:07:55 字數 1727 閱讀 3515

def sum(a:

int,b:

int)

=a+b

println(sum(2,

3))//curring函式,將原來接收兩個引數的乙個函式,轉換成2個

def sum1(a:

int)

(b:int

)=a+b

println(sum1(2)

(3))

val l=list(1,

2,3,

4,5,

6,7,

8)//map:逐個去操作集合中的每個元素

l.map(

(x:int

)=>x+1)

l.map(x=>x+1)

//也可以這麼寫

l.map(_+1)

//_表示裡面的每乙個元素

l.map(_+1)

.foreach(println)

//列印集合中每乙個元素[集合..foreach(println)]

l.map(_*2)

.filter(_>8)

.foreach(println)

//集合中每個元素乘2,並且過濾出大於8的元素

l.take(5)

//取出集合中的前五個

//1+2 3+3 6+4 10+5 15+6 21+7 28+8

l.reduce(_+_)

//集合中的元素兩兩相加,結果:36

l.fold(10)

(_*_)

/** * fold函式實現了對list中所有元素的累乘操作。

* fold函式需要兩個引數,乙個引數是初始種子值,這裡是10,另乙個引數是用於計算結果的累計函式,這裡是累乘。

* 執行list.fold(10)(_*_)時,首先把初始值拿去和list中的第乙個值1做乘法操作,得到累乘值10,

* 然後再拿這個累乘值10去和list中的第2個值2做乘法操作,得到累乘值20,依此類推,一直得到最終的累乘結果403200。

*/l.max

l.min

l.sum

val f=list(list(1,

2),list(3,

4),list(5,

6)) f.flatten//list(1, 2, 3, 4, 5, 6)將裡面的集合壓縮為乙個集合

f.map(_.map(_*2)

)//list(list(2, 4), list(6, 8), list(10, 12)),元素*2

f.flatmap(_.map(_*2)

)//flatmap=flatten+map,先壓縮,然後做*操作,.輸出list(2, 4, 6, 8, 10, 12)

val txt=scala.io.source.fromfile(

"f:/hello.txt"

).mkstring//將檔案中的內容轉為字串

val txts=list(txt)

//存入集合list,結果為list(hello,world,hello,hello)

//先將txts集合中的元素以,分隔,然後再執行將每個元素出現一次

// list((hello,1), (world,1), (hello,1), (hello,1))

txts.flatmap(_.split(

",")

).map(x=>

(x,1

))

建構函式以及this

實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...

建構函式以及this

實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...

php fopen函式以及相關函式

fopen string filename string mode bool use include path false resource context fopen 將 filename 指定的名字資源繫結到乙個流上。引數 filename 如果 php 認為 filename 指定的是乙個本地...