字符串高级操作
//字符串高级操作
//1.插值
val s="hello"
val name="wt"
//前面s ,后面跟着$变量名
print(s"hellw:$s")
//2.多行
val b=
"""
|xiao
|qiang
""".stripMargin
print(b)
匿名函数
val m=(x:Int)=>x3
m(10)
def add=(x:Int,y:Int)=>{x+y}
柯里化:Currying
柯里化函数(Curried Function)是把具有多个参数的函数转换为一条函数链,每个节点上是单一参数。
//将原来接收两个参数的函数,转换成2个
高阶函数
示例1:
=>操作
x:Int-入参
函数是i2
对list的每个元素进行操作。
int 和括号可以省略,但是只有一个参数的时候。
number.map(x=>x*2)
占位符表示里面的任意元素
number.map(*2)
示例2:
示例3:
number.fileter(>8).foreach(println)
示例4:
示例5:
number.take(2)–取出链表前几个。
示例6:reduce算子
//1+2 3+4 5+6
number.reduce(+)两两想临的元素加起来。–求和。
number.reduce(-)
reduce包含reduceLeft和reduceRight。reduceLeft就是从左向右归约,reduceRight就是从右向左归约
左边是开始减的,两个数开始减,右边减reduce是两个数减。
flatten
val f=List(List(1,2),List(3,4),List(5,6))
print(f.flatten)
f.flatMap(.map(*2))
先作用flatten功能,转成list.然后每个元素乘以2.
在这个例子中,分为两步:
(1)将(1,2,3)和(4,5,6)这两个集合合并成一个集合
(2)再对每个元素乘以2