(三)Scala从入门到项目实战(Flink、Spark、Kafka)——Scala方法和函数

目录

方法和函数

方法的定义

递归方法

方法的默认参数

可变参数的方法

嵌套方法

匿名函数

偏应用函数

高阶函数

方法的参数是函数

方法的返回是函数

方法的参数和返回都是函数

柯里化函数


方法和函数

说明:在Scala中既有方法也有函数,大多数情况下,他们没有区别,作为初学者暂时不用明确区分。一般情况下方法的类型为具体一个返回值类型,可以省略不写。而函数的类型为:参数类型 => 返回值类型 ,也可以省略不写,在后边的代码中会体现这个特点。

 

方法的定义

    def max(a:Int,b:Int):Int={

      if(a>b) return a else return b

    }

    println(max(1, 3))

 

                     

  1. 方法用def来定义
  2. 方法体中最后的返回值可以使用return,如果使用了return,那么方法体的返回值类型一定要定义
  3. 如果方法体中没有return,默认将方法体中的最后一行计算的结果当做返回值返回,方法体的返回值类型可以省略(自动推断)
  4. 定义方法传入的参数一定要指定类型
  5. 如果方法体为一行代码,方法的定义也可以简写

比如:

    def max(a: Int, b: Int): Int = if (a > b) return a else return b
  • 如果定义的方法没有返回值(Unit)也可以省略方法名称和方法体之间的“=”,要注意,省略了等号,不管有没有返回值都不会反回任何内容。

递归方法

定义方法递归调用时必须显示的定义出函数返回值,否则其无法推断,不能通过编译

  def fun(num: Int): Int = {

    if (num == 1) 1 else num * fun(num - 1)

  }

 

方法的默认参数

Scala支持定义方法时对参数设置默认值。调用时输入参数则使用输入的参数,空参则使用默认值

  def sum(a: Int = 10, b: Int = 20) = {

    a + b

  }

  println(sum())//空参

  println(sum(100,200))//覆盖

  
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值