Scala函数式编程 迪士尼平台出售

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

猜你喜欢

转载自blog.51cto.com/13931041/2161915
今日推荐