scala基本语法->高阶函数、闭包、​柯里化

高阶函数

object test {
  def main(args: Array[String]): Unit = {
      function1((x:Int)=>x+"test")
  }
  def function1(x:Int=>String): Unit ={            //该函数的参数是一个函数(输入参数是int,返回值时string)
    print(x(11))                              //给该函数的参数里的函数的参数赋值为11
  }
  def f2(x:Int):(Int,Int)=>Int={          //调用该函数返回函数(该返回函数是输入int,返回Int类型的)
    def f3(y:Int,z:Int):Int={            //定义该返回函数
       x+y+z
    }
    f3                   //return  该返回函数
  }
  def f4(x:Int):(Int,Int)=>Int={         //这是上一个函数的简写 
    (y:Int,z:Int)=>x+y+z              //别名函数不需要调用直接返回
  }
}

scala 的闭包:函数里面引用外面类成员变量叫作闭包.例:

  var a=3
  val b=(i:Int)=>i*a

柯里化

  def f4(x:Int):(Int,Int)=>Int={         //这是f2函数的简写
    (y:Int,z:Int)=>x+y+z              //别名函数不需要调用直接返回
  }
  def curring(x:Int)(y:Int,z:Int):Int=x+y+z    //再将f4柯里化

map里的参数是函数

object test{
  def main(args: Array[String]): Unit = {
      val nums=Seq(2,3,4)
      val newnums=nums.map(_*2)  //Lists(4,6,8)   _*2 是函数 x=>x*2的缩写
      println(newnums)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值