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]
    }
    
    在这里,return type可以是任何有效的Scala数据类型,list of parameters将是用逗号分隔的变量列表,参数列表是可选的。与Java非常相似,在函数返回值的情况下,可以将return语句与表达式一起使用。以下是将两个整数相加并返回其和的函数-
    
    object add {
       def addInt( a:Int, b:Int ) : Int = {
          var sum:Int = 0
          sum = a + b
          return sum
       }
    }
    
    一个不返回任何内容的函数可以返回一个等于Java中的voidUnit,并指示该函数不返回任何内容。在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]):Unit = {
          println( "Returned Value : " + addInt(5,7) );
       }
       
       def addInt( a:Int, b:Int ) : Int = {
          var sum:Int = 0
          sum = a + b
    
          return sum
       }
    }
    
    尝试一下
    输出:
    
    Returned Value : 12
    
    Scala函数是Scala编程语言的核心,这就是为什么Scala被认为是一种函数式编程语言的原因。以下是一些与Scala函数相关的重要概念,Scala程序员应该理解这些概念。
    函数按名称调用 具有命名参数的函数
    具有可变参数的函数 递归函数
    默认参数值 高阶函数
    嵌套函数 匿名函数
    局部应用函数 局部套用函数