专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

十二、Scala 教程: 函数

文章永久连接:https://tech.souyunku.com/2991

Scala 中使用 def 关键字来声明一个函数

函数是一组一起执行一个任务的语句。

Scala 有函数和方法,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。

我们可以在任何地方定义函数,甚至可以在函数内定义函数(内嵌函数)。更重要的一点是 Scala 函数名可以有以下特殊字符: +, ++, ~, &,-, — , \, /, : 等。

函数声明

Scala 函数声明格式如下:

def functionName ([参数列表]) : [return type]

或者

如果不写等于号和方法主体,那么方法会被隐式声明为”抽象(abstract)”,包含它的类型于是也是一个抽象类型。

函数定义

方法定义由一个 def 关键字开始,紧接着是可选的参数列表,一个冒号”:” 和方法的返回类型,一个等于号”=”,最后是方法的主体。

Scala 函数定义格式如下:

def functionName ([参数列表]) : [return type] = {
   function body
   return [expr]
}

以上代码中 return type 可以是任意合法的 Scala 数据类型。

参数列表中的参数可以使用逗号分隔。

以下函数的功能是将两个传入的参数相加并求和:

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

      return sum
   }
}

如果函数没有返回值,可以返回为 Unit ,这个类似于 Java 的 void , 范例如下:

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

函数调用

Scala 提供了多种不同的函数调用方式:

以下是调用方法的标准格式:

functionName( 参数列表 )

如果函数使用了范例的对象来调用,我们可以使用类似java的格式 (使用 . 号):

[instance.]functionName( 参数列表 )

以上范例演示了定义与调用函数的范例:

object Test {
   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
   }
}

上面代码执行结果为:

$ scalac Test.scala 
$ scala Test
Returned Value : 12

Scala也是一种函数式语言,所以函数是 Scala 语言的核心。

以下一些函数概念有助于我们更好的理解 Scala 编程:

函数概念解析及范例
函数传名调用(Call-by-Name)
指定函数参数名
函数 – 可变参数
递归函数
默认参数值
高阶函数
内嵌函数
匿名函数
偏应用函数
函数柯里化(Function Currying)

干货推荐

本站推荐:精选优质专栏

附录:Scala 教程:系列文章

未经允许不得转载:搜云库技术团队 » 十二、Scala 教程: 函数

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们