Scala:函数与匿名函数

Scala:函数与匿名函数

  • 函数是第一等公民
  • 函数类型
    • 高阶函数
    • 匿名函数

函数是第一等公民

  • 在scala中,函数是第一等公民
  • Scala中,函数和变量有同等的位置,或者说函数也是一种变量。
  • Scala中的函数可以作为实参传递给另一个函数;
  • 函数可以作为返回值;
  • 函数可以赋值给变量(这个变量需符合函数的类型的变量);
  • 函数可以存储在数据结构之中。

⚠️函数如同普通变量一样,也具有函数的类型。

函数类型

  1. 函数类型格式为:A=>B 表示一个接受类型A的参数,并返回类型B的函数

  2. Int => String,把整形数映射为String类型的函数类型。

高阶函数

  • 接受的参数是一个函数,或者返回值是一个参数,或者两者皆有之的函数,称为高阶函数。

例如:下列函数是以另一个函数(f)作为参数接入

def operate(f:(Int,Int) => Int ) = {
	f(4,4)
}
  • ⚠️f函数是以两个int类型的值作为参数,并返回一个int值

匿名函数

例如:

def greeting( ) = (name:String) => {"hello" + " " + name}

匿名函数也称为函数常量,也称函数文字量(类比String)。
定义格式:

(形参列表) => {函数体}

如:

(x:Int, y:Int) => x+y
val fun = (x:Int, y:Int) => x+y
var funr = (x:Int, y:Int) => x+y

上面三句都是可以使用的。
fun不能重新赋值,funr可以赋值其他的类型为(Int, Int)=>Int的函数。

代码:

package com.leili.scala

object Function {
  def main(args: Array[String]): Unit = {
    var x  = (x: Int, y: Int) => {
      x + y}
    println(x(1,1))
  }
}

输出:4

你可能感兴趣的:(Scala)