您的位置:首页 > 编程语言

Spark基础-Scala高阶函数

2017-08-20 23:22 267 查看
核心

1、scala高阶函数

package com.xlucas

/**
* Created by xlucas on 2017/8/20 0020.
*
* 1、函数和变量一样作为scala语言的一等公民,函数可以直接赋值给变量
* 2、函数更多的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可
* 3、函数可以作为参数直接传递给函数,函数作为函数的参数传递的编程方式是称之为高阶函数
* 4、函数式编程的返回值可以是函数,当函数的返回值是函数的时候,这个时候就表明scala的函数实现了闭包
* 闭包的内幕是:scala的函数背后是类和对象,所以scala的参数作为了对象的成员,后续可以继续访问
* 5、复杂的函数式编程中经常使用,可以维护变量在内存中的状态,实现返回函数的链式功能
*/
object FunctionOop {
def main(args: Array[String]): Unit = {
val say=sayHello _ //这个需要用_符合来赋值操作
say("spark")

val f=(name:String)=>println("hi" +name)//匿名函数
f("spark")

def getName(func:(String)=>Unit,name:String): Unit ={//函数做为参数
func(name)
}
getName(f,"scala")

Array(1 to 10: _* ).map{(item:Int)=>2*item}.foreach{x=>println(x)}//数组来做为输入在操作
def funResult(message:String)=(name:String)=>println(message+" :" +name)
funResult("hello")("java")// currying 函数写法  柯里化

}
def sayHello(name:String): Unit ={
println("hi" + name)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 spark scala 编程