DT大数据梦工厂 温故而知新 之23讲

来源:互联网 发布:天梭手表怎么样 知乎 编辑:程序博客网 时间:2024/04/30 19:40

王家林亲授 大数据开发语言《Scala深入浅出实战经典》(1-71讲全部视频、代码、PPT)下载 ,总共有140讲Scala视频!
百度云:http://pan.baidu.com/s/1jGjFpWy
腾讯微云:http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2


DT大数据梦工厂 温故而知新 之23讲scala 中的高阶函数的使用


package TestPractice.toweek



import  scala.math._
/**
 * @author Administrator
 */
object HighFunctionDemo {
  
  def main(args: Array[String]): Unit = {
    (1 to 9).map("*" *_).foreach(println)
    
    (1 to 9).filter(_ % 2==0).foreach(println)
     println("---------------------------")
     println((1 to 9).reduceLeft(_*_))
     println("---------------------------")
     "Spark is the  most  exciting  thing happening  in big data today".split(" ").sortWith(_.length < _.length).foreach { println }
  
  showfunction()
  }
  
  
  def  showfunction(){
     val fun =ceil _
     val num=3.14
     fun(num)
     Array(3.14,1.42,2.0).map(fun)
     
     val triple=(x:Double)=> 3*x
     Array(3.14,1.42,2.0).map(triple).foreach(println)
      println("---------------------------")
     Array(3.14,1.42,2.0).map((x:Double)=> 3*x).foreach(println _)
      println("---------------------------")
     
     def high_order_functions(f:(Double)=>Double)=f(0.25)
     println(high_order_functions(ceil _))
     println(high_order_functions(sqrt _))
     
     
     def mulBy(factor :Double)=(x:Double)=>factor * x
     val  quintuple=mulBy(5)
     println(quintuple(20))
     
     
     println(high_order_functions ((x:Double)=>3 *x))
   
    
     
      var func2=3* (_:Double)
      var func3:(Double)=>Double = 3 * _
    
  }
  

}


控制台输出:

*
**
***
****
*****
******
*******
********
*********
2
4
6
8
---------------------------
362880
---------------------------

is
in
the
big
most
data
Spark
thing
today
exciting
happening
9.42
4.26
6.0
---------------------------
9.42
4.26
6.0
---------------------------
1.0
0.5
100.0
0.75


//z总结: 高阶函数可以是函数 可以当做 参数来传递 ,在一定情况下 参数可以是用占位符来代替但是有时候 占位符要指定起类型 否则会报语法错误
0 0
原创粉丝点击