[原创]Scala学习:函数的定义

Posted jason_zhangz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[原创]Scala学习:函数的定义相关的知识,希望对你有一定的参考价值。

方式一:标准的定义函数
  def 函数名(参数1: 参数类型,参数2: 参数类型): 返回值类型 = {
      函数体
  }

例子
  def max(x: Int,y: Int): Int ={
      if(x > y) x
      else y
  }

注意:参数列表中必须标注好参数类型,因为scala编译器无法推断参数的类型

 

方式二:在一般的情况下可以省略,函数返回值的类型
  def 函数名(参数1: 参数类型,参数2: 参数类型) = {
      函数体
  }


  def max(x: Int,y: Int)={
    if(x > y) x
    else y
  }
或者 将大括号也可以省略
  def max(x: Int,y: Int) = if(x > y) x else y

注意:在函数递归的时候,必须指明返回值的类型

 

方式三:既不带参数也不带返回值有用结果的定义函数


  scala> def greet() = println("hello world")
  greet: ()Unit
  Unit是函数greet的记过类型,指的是函数没有有效的返回值,scala中的Unit类型比较于java中的viod类型,而实际上java中返回void的方法都会被映射为返回Unit的scala方法
  结果类型为Unit的方法,并非是为了得到返回值,而是为了其他的运行效果(side effect)

 

以上是关于[原创]Scala学习:函数的定义的主要内容,如果未能解决你的问题,请参考以下文章

[原创]Scala学习:Tuple,Array,Map ,文件操作

[原创]Scala学习:编写Scala脚本

[原创]Scala学习:流程控制,异常处理

scala学习笔记-函数入门

Spark基础-scala学习

Scala学习笔记