码迷,mamicode.com
首页 > 其他好文 > 详细

scala 高级十五 scala 高介函数式编程

时间:2017-07-04 20:24:55      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:cti   length   data   buffer   返回   表达式   array   一个   数组   

1.高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数);另外一种是返回值是函数的函数。

2.值函数,我们可以用 var或者val 定义一个参数去接收一个函数叫做值函数 ,格式为 var fun_name=funName _

技术分享

上图我们定了一个 add函数有两个参数,返回一个int 类型, 然后用吧定义好的add 函数传值给 fun_add   var fun_add=add _  然后用fun_add(2,7) 去调用函数

3.函数的嵌套

 //嵌套函数的使用在函数体再定义一个函数
  def nest(x:Int,y:Int,z:Int):Int=
  {
    
     def add(a:Int,b:Int):Int=
     {
       a+b;
     }
     //调用上面的函数再加上z
     add(x,y)+z;
  }


println(nest(1,6,5))

result:
12

 3.高阶函数

package smart.iot

import scala.collection.mutable.ArrayBuffer

class TestFuncion {
  
}

object TestFuncion
{
  def main(args: Array[String]): Unit = {
    
    var arr=Array("a","b","c","d")
    
  
    
   var data= ArrToUpper(arr,func1)
    
     for(x<-data)
     {
       println(x);
     }
    
   
  }
  
  
  //嵌套函数的使用在函数体再定义一个函数
  def nest(x:Int,y:Int,z:Int):Int=
  {
    
     def add(a:Int,b:Int):Int=
     {
       a+b;
     }
     //调用上面的函数再加上z
     add(x,y)+z;
  }
  
  //定义一个函数把字母小写转大写
  def func1(str:String):String=
  {
    str.toUpperCase()
  }
  
  //高阶杉树,接收一个数组 和一个函数的定义 在使用的时候实际上传的是要调用的函数的名字
  def ArrToUpper(arr:Array[String],func:(String)=>String)=
  {
    for(x<-0 until arr.length)
    {
      arr(x)=func(arr(x))
    }
    arr
  }
  
  
  

}

 4.匿名函数 (参数:参数类型)=>{表达式}

 

scala 高级十五 scala 高介函数式编程

标签:cti   length   data   buffer   返回   表达式   array   一个   数组   

原文地址:http://www.cnblogs.com/IChing/p/7117904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!