scala函数高级操作

高级操作:

一、字符串高级操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
val a=" teest aaaa"

val s=s"syso : $a"

println(s)

val b=
"""
|aaa
|ddd
|fdgf
|df
|g
|df
""".stripMargin

println(b)

二、匿名函数

注:函数可以命名,也可以不命名

1
2
3
4
5
6
7
8
9
10
11
12
13
def sayHell0(name:String): Unit ={
println("Hi: "+name)
}

def main(args: Array[ String ]): Unit = {
sayHell0("scala")
//匿名函数
val m1=(x:Int)=>x+1

def aa(x:Int)=x+1

println(m1(10)+s":"+aa(10))
}

三、currying函数(参数颗粒化)

注:将原接受 两个参数的函数转换为两个

1
2
3
4
5
6
def sum(a:Int,b:int)=a+b


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

println(sum(10,10)+s":"+sum2(10)(10))

四、高阶函数

(1)map:逐个去操作集合中的每个元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
val l=List(1,2,3,4,5,6,7,8)
l.map((x:Int)=>x+1)
println("--------map--------------------")
//只有()中只有一个参数时才可省略
l.map(x=>x+1).foreach(println)
println("----------map------------------")
l.map(_*2).foreach(println)
println("---------filter-------------------")
l.map(_*2).filter(_>8).foreach(println)
println("----------take------------------")
l.map(_*2).take(2).foreach(println)
println("-----------reduce-----------------")
println(l.map(_*2).reduce(_+_))
println(l.map(_*2).reduceLeft(_-_))
println(l.map(_*2).reduceRight(_-_))

(2)fold+flatten

1
2
3
4
5
6
7
8
9
10
val l=List(1,2,3,4,5,6,7,8)
println("-----------fold-----------------")
println(l.fold(0)(_-_))

val f=List(List(1,2),List(3,4),List(5,6))
println("-----------flatten-----------------")

println(f.flatten)
println(f.map(_.map(_*2)))
println(f.flatMap(_.map(_*2)))

(3)flatMap(map+flaten)

1
2
3
val a= "hello,hello,world,data"
val lis=List(a)
lis.flatMap(_.split(",")).map(x=>(x,1)).groupBy(_._1).mapValues(_.size).foreach(println)

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2020 丁振莹
  • 访问人数: | 浏览次数:

你的每一分支持,是我努力下去的最大的力量 ٩(๑❛ᴗ❛๑)۶

支付宝
微信