Scala的函数字面量语法

  字面量是一个常量,它可以在编译的过程中进行类型的确定。下面通过Scala的函数字面量定义及作用等相关介绍进一步说明Scala的函数的高级特性。

1.Scala的函数字面量语法

Scala的函数字面量语法为:

(参数列表)=> {方法体}

  与定义函数的语法相比,它省略了def关键字、函数名以及函数的返回类型。在Scala的函数字面量的定义中直接把参数列表与方法体通过=>相连。例如定义一个函数字面量对输入变量加1并返回,即(x:Int)-=>{x+1}。由于Scala的函数字面量没有定义函数名,所以又把这种函数字面量称为匿名函数。

2.Scala的函数字面量作用

  由于Scala的函数字面量没有定义函数名,所以可以通过变量进行调用。另外,也可以通过参数的方式进行调用,关于这种方式的介绍将在Scala的函数高阶中进一步说明,这里不再展开叙述。

3.Scala的函数字面的简化

  Scala的函数字面量的简化有两种方式,第一种方式为:_(占位符)。如果函数中的参数在方法体中只使用一次,可以用_(占位符)替换,这种方式比较常用。当使用_(站位符)替换变量时,需要指明变量的类型。 

  第二种方式为:只有一个表达式时,可以省略括号。当函数体中只有一个表达式时,可以省略括号。例如,可以把(x:Int)=>{x+1}简写成(x:Int)=>x+1

object Test14 {
  def sum(x:Int,y:Int):Int={
    x+y
  }

  def main(args: Array[String]): Unit = {
    //定义函数的新方式:字面量方式
    //好处:简单,方便
    var sum1 = (x:Int,y:Int) => {
      x+y
    }
    //简写1:代码只有一句,可以省略{}
    var sum2 = (x:Int,y:Int) => x+y
    //简写2:形参可以使用占位符来代替
    //       (Int,Int)=>Int 表示一种类型,是一个函数,需要两个int类型的参数,返回一个int类型的结果
    var sum3:(Int,Int)=>Int= _ + _

    //var res = sum2(100,200)
    var res = sum3(200,200)
    print(res)
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值