Scala中函数可以不依赖于类、对象、接口单独存在,迪士尼平台出售【企 娥:217 1793 408】函数可以作为函数的参数、返回值。
scala> def fun1(name:String){println(name)} //定义函数
fun1: (name: String)Unit
scala> val fun1v = fun1 //将函数赋值给fun1_v
fun1_v: String => Unit = <function1>
scala> val fun1v = fun1
fun1_v: String => Unit = <function1>
scala> fun1("spark")
spark
scala> fun1_v("spark")
spark
匿名函数:为了使用简洁,将函数直接赋值给变量,使用函数时通过调用变量实现,称为匿名函数。
scala> val fun2 = (content:String) => println(content) //定义匿名函数
fun2: String => Unit = <function1>
scala> fun2("Spark")
Spark
高阶函数:即某个函数的参数或返回值也是函数。
scala> val hiScala = (content:String) => println(content) //定义匿名函数
hiScala: String => Unit = <function1>
scala> def bigData(func:(String) => Unit, content:String){func(content)} //定义高阶函数
bigData: (func: String => Unit, content: String)Unit
scala> bigData(hiScala, "Spark")
Spark
scala> val array = Array(1,2,3,4,5,6,7,8,9)
array: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
scala> array.map(item => item * 2) //map内参数为匿名函数
res5: Array[Int] = Array(2, 4, 6, 8, 10, 12, 14, 16, 18)
//返回值为函数举例
scala> def func_Returned(content:String) = (message:String) => println(content + " " + message)
func_Returned: (content: String)String => Unit
scala> val returned = func_Returned("Spark")
returned: String => Unit = <function1>
scala> returned("Scala")
Spark Scala