Scala之函数简介

Scala之函数简介

1.内嵌函数

  • 1)在函数内部再定义一个函数
  • 2)实现阶乘函数,源码如下:
object Test {
  def main(args: Array[String]) {
    println( factorial(1) );//直接对返回的值输出
    println( factorial(2) )
    println( factorial(3) )
  }

  def factorial(i: Int): Int = {
    def fact(i: Int, accumulator: Int): Int = {//在函数内部再定义一个函数 [但是执行却是要到后面的语句fact(i,1)]
      if (i <= 1)
        accumulator;**//相当于return accumulator**
      else
        fact(i - 1, i * accumulator)
    }
    fact(i, 1);//关键的执行语句。
  }
}

2.偏应用函数

  • 1)有时候在调用函数的时候,有些参数是不变的,变化的参数只有很少的一部分,这个时候就可以使用偏应用函数,从而减少代码量的编写。
  • 2)源码如下:
import java.util.Date//导入java中的包
object Test{
  def main (args :Array[String]): Unit ={
    val date = new Date();
    val heartBind = loverDay("liuting",date,_:String);
    /*1.新建一个函数的索引
    *2.使用偏应用函数,从而减少参数的使用
    */
    heartBind("I love you");
    heartBind("what are you doing now?");
  }
  def loverDay(name:String,date:Date,message:String): Unit={
    println("Today is :"+date);
    println("This is my truth: "+message);
  }
}

3.匿名函数:

  • 1)Scala 中定义匿名函数的语法很简单,箭头左边是参数列表,右边是函数体。使用匿名函数后,我们的代码变得更简洁了。
  • 2)源码如下:
object Test{
  def main(args:Array[String]): Unit ={
    val addInt = (a:Int,b:Int) => { a + b;};
    //为何不能是return a+b;?
    //这里var addInt与val addInt又有什么区别?
    println("sum is " + addInt(1,2));
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说文科技

看书人不妨赏个酒钱?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值