Scala函式高階操作

2022-08-27 12:45:09 字數 1366 閱讀 6453

字串高階操作:***** 非常重要

將函式賦值給變數/值

def sayhello(name:string): unit =

匿名函式

(引數名:引數型別) => 函式體

沒有大括號,()是必須的

有大括號, ()是可以去掉的

scala> (x:int) => x+1

res0: int => int =

scala>

res1: int => int =

scala> val m1 = (x:int) => x+1

m1: int => int =

scala> m1(10)

res2: int = 11

scala> def add(x:int, y:int)=>

add: (int, int) => int

scala> add(2,3)

res3: int = 5

scala> map(x=>(x,1))

currying函式:顆粒化的方式

def sum(a:int, b:int) = a+b

println(sum(2,3))

顆粒化的方式:

def sum2(a:int)(b:int) = a + b

println(sum2(2)(3))

}高階函式 *****

主要有map、filter、flatmap、foreach、reduce等

map: 是對每個元素進行某個操作

flatmap: 先壓扁到一起,再做map操作

foreach:遍歷每乙個元素

scala> f.flatmap(_.map(_*2)) //先把資料打扁在一起,然後在呼叫map。

res24: list[int] = list(2, 4, 6, 8, 10, 12)

cat hello.txt

hello,world,hell,hello

val txt = scala.io.source.fromfile("/users/rocky/imooc/hello.txt").mkstring //從檔案裡讀取資料並把資料轉換成字串

println(txt)

val txts = list(txt)

txts.flatmap(_.split(",").map(x => (x,1))).forreach(println) //把資料按逗號進行分割以後再打扁

}偏函式:partialfunction[a,b]

a: 輸入引數型別

b:輸出引數型別

常用作輸入模式匹配

/*** 偏函式:被包在花括號內沒有match的一組case語句

*/

scala 函式高階操作

1 匿名函式 引數 引數型別 函式體 匿名函式沒有名字,使用 val f 引數 引數型別 函式體 def f 引數 引數型別 函式體 2 多行字串與插值 val name bioamin println s user is name val location panjiayuan of beijin...

Scala高階函式

在scala中,無法直接操縱方法,只能直接操縱函式,所以需要使用 import scala math.val temp ceil val num 3.14 println fun temp num temp的型別是 double double,意為接受double引數並返回double的函式。能夠對...

Scala 高階函式

import scala.math.val num 3.14val func ceil 意味著確實指的是這個函式,而不是忘記了傳引數 func是乙個函式變數,內容儲存的是個函式 val v func num println v val arr array 1.0,3.14,4 map func 將函...