scala 普通函数和匿名函数即lambda 表达式

scala 普通函数和匿名函数即lambda 表达式

  函数function / 方法method 的定义 基本语法
    def 函数名 ([参数名: 参数类型], ...) [[: 返回值类型] =] {
        语句...
        return 返回值
    }

    1. 函数声明关键字为def  (definition)
    2. [参数名: 参数类型], ...:表示函数的输入(就是参数列表),可以没有。 如果有,多个参数使用逗号间隔
    3. 函数中的语句:表示为了实现某一功能代码块
    4. 函数可以有返回值,也可以没有
    5. 返回值形式1:    : 返回值类型  =   
    6. 返回值形式2:    =  表示返回值类型不确定,使用类型推导完成
    7. 返回值形式3:    表示没有返回值,return 不生效
    8. 如果没有return,默认以执行到最后一行的结果作为返回值

    // 定义函数
    def getRes(n1: Int, n2: Int, oper: Char) = {
      if (oper == '+') {
        n1 + n2 // 返回
      } else if (oper == '-') {
        n1 - n2
      } else {
        // 返回null
        null
      }
    }


  匿名函数
  val triple = (x: Double) => 3 * x
  println(triple(3))
 
  说明:
  1. (x: Double) => 3 * x 就是匿名函数
  2. (x: Double) 是形参列表,=> 是规定语法表示后面是函数体,3 * x 就是函数体,如果有多行,可以 {} 换行写.
  3. triple 是指向匿名函数的变量。
  区别:
  1. 匿名函数不需要写返回值类型,Scala 自动类型推导,一般函数的= 变成了=>。
  2. 匿名函数不需要写def,总体而言根JavaScript 的箭头函数很类似。


参考:《尚硅谷_韩顺平Scala》http://www.atguigu.com/download_detail.shtml?v=61
 


版权声明:本文为yoshubom原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。