Scala - 函数



函数是一组执行任务的语句。您可以将代码分成单独的函数。如何将代码划分为不同的函数取决于您,但从逻辑上讲,划分通常是为了使每个函数执行特定任务。

Scala 既有函数也有方法,我们交替使用方法和函数这两个术语,它们之间存在细微差别。Scala 方法是类的一部分,它具有名称、签名、可选的某些注释以及一些字节码,而 Scala 中的函数是完整的对象,可以分配给变量。换句话说,定义为某个对象成员的函数称为方法。

函数定义可以出现在源文件的任何位置,并且 Scala 允许嵌套函数定义,即在其他函数定义内部的函数定义。需要注意的最重要的一点是,Scala 函数的名称可以包含 +、++、~、&、-、--、\、/、: 等字符。

函数声明

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

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

如果您不使用等号和方法体,则方法会隐式声明为抽象

函数定义

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
   }
}

不返回任何内容的函数可以返回一个Unit,它等效于 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

输出

Returned Value : 12

Scala 函数是 Scala 编程的核心,这就是为什么 Scala 被认为是一种函数式编程语言。以下是与 Scala 函数相关的几个重要概念,Scala 程序员应该了解这些概念。

广告