Scala 函数

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

一个不返回任何东西的函数可以返回一个等同于Java中的 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程序员理解。

函数的按名称调用 具有命名参数的函数
具有可变参数的函数 递归函数
默认参数值 高阶函数
嵌套函数 匿名函数
部分应用的函数 柯里化函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程