当前位置:   article > 正文

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

scala flank kafka

目录

方法和函数

方法的定义

递归方法

方法的默认参数

可变参数的方法

嵌套方法

匿名函数

偏应用函数

高阶函数

方法的参数是函数

方法的返回是函数

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

柯里化函数


方法和函数

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

 

方法的定义

  1. def max(a:Int,b:Int):Int={
  2.       if(a>b) return a else return b
  3.     }
  4.     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)也可以省略方法名称和方法体之间的“=”,要注意,省略了等号,不管有没有返回值都不会反回任何内容。

递归方法

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

  1.   def fun(num: Int): Int = {
  2.     if (num == 1) 1 else num * fun(num - 1)
  3.   }

 

方法的默认参数

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

  1. def sum(a: Int = 10, b: Int = 20) = {
  2.     a + b
  3.   }
  4.   println(sum())//空参
  5.   println(sum(100,200))//覆盖
  6.  
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/864549
推荐阅读
相关标签
  

闽ICP备14008679号