📜  Scala-函数

📅  最后修改于: 2020-11-02 04:44:43             🧑  作者: Mango


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

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

一个不返回任何内容的函数可以返回一个与Java中的void等效的Unit ,并指示该函数不返回任何内容。在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程序员应该理解这些概念。

Functions Call-by-Name Functions with Named Arguments
Function with Variable Arguments Recursion Functions
Default Parameter Values Higher-Order Functions
Nested Functions Anonymous Functions
Partially Applied Functions Currying Functions