Scala - 功能

函数是一组执行任务的语句.您可以将代码划分为单独的函数.你如何在不同的函数之间划分你的代码取决于你,但从逻辑上讲,除法通常是每个函数执行一个特定的任务.

Scala有两个函数和方法,我们使用术语方法和功能可互换,略有不同. Scala方法是类的一部分,它具有名称,签名,可选的一些注释和一些字节码,其中Scala中的函数是可以分配给变量的完整对象.换句话说,一个被定义为某个对象成员的函数称为方法.

函数定义可以出现在源文件中的任何位置,而Scala允许嵌套函数定义,也就是说,其他函数定义中的函数定义.最重要的一点是,Scala函数的名称可以包含 + , +  + ,〜,&, - , - ,\,/,...等字符.

函数声明

Scala函数声明具有以下形式 :

def functionName ([list of parameters]) : [return type]

如果不使用等号和方法,则隐式声明方法 abstract 方法体.

函数定义

Scala函数定义具有以下形式 :

语法

def functionName ([list of parameters]) : [return type] = {
   function body
   return [expr]
}

此处,返回类型可以是任何有效的Scala数据类型和参数列表将是一个由逗号和参数列表分隔的变量列表,返回类型是可选的.与Java非常相似,在函数返回值的情况下, return 语句可以与表达式一起使用.以下是将添加两个整数并返回其总和减去的函数;

语法

object add {
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b
      return sum
   }
}

一个不返回任何东西的函数可以返回单位这相当于Java中的 void ,表示该函数不返回任何内容.在Scala中没有返回任何内容的函数,它们被称为过程.

语法

这是语法 :

object Hello{
   def printMe( ) : Unit = {
      println("Hello, Scala!")
   }
}

调用函数

Scala为调用方法提供了许多语法变体.以下是调用方法的标准方法 :

functionName( list of parameters )

如果使用对象的实例调用函数,那么我们将使用类似于Java的点表示法,如下所示 :

[instance.]functionName( list of parameters )

尝试以下示例程序来定义然后调用相同的函数.

示例

object Demo {
   def main(args: Array[String]) {
      println( "Returned Value : " + addInt(5,7) );
   }
   
   def addInt( a:Int, b:Int ) : Int = {
      var sum:Int = 0
      sum = a + b

      return sum
   }
}

将上述程序保存在 Demo.scala中的.以下命令用于编译和执行该程序.

命令

\>scalac Demo.scala
\>scala Demo

输出

 
返回值:12

Scala函数是Scala编程的核心,这也是Scala被假定为函数式编程语言的原因.以下是与Scala函数相关的一些重要概念,Scala程序员应该理解这些概念.

函数名称调用具有命名参数的函数
带变量参数的函数递归函数
默认参数值高阶函数
嵌套函数匿名函数
部分应用函数Currying Functions