美文网首页
Scala编程基础10:Scala函数1

Scala编程基础10:Scala函数1

作者: 金字塔下的小蜗牛 | 来源:发表于2020-04-08 08:16 被阅读0次

Scala中有函数和方法,二者在语义上区别很小。Scala方法是类的一部分,而函数是一个对象,可以赋值给一个变量,换句话说,在类中定义的函数就是方法。我们可以在任何地方定义函数,甚至可以可以在一个函数内部定义另一个函数(内嵌函数)。更重要的一点是:Scala函数名可以含有以下特殊字符:+,++,~,&,-,–,\,/,:等。

1.函数声明

Scala函数声明格式如下:

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

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

2.函数定义

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

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

其中的return [expr]的类型可以是任意合法的Scala数据类型,参数列表中的参数之间使用逗号”,”分隔。
以下函数的功能是将传入的两个整数求和:

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

在Scala环境中执行调用结果如下:

scala> :paste
// Entering paste mode (ctrl-D to finish)

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

// Exiting paste mode, now interpreting.

defined object add

scala> add.addInt(1,2)
res0: Int = 3

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

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

在Scala环境中执行调用结果如下:

scala> :paste
// Entering paste mode (ctrl-D to finish)

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

// Exiting paste mode, now interpreting.

defined object Hello

scala> Hello.printMe()
Hello, Scala!

3.函数调用

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

编译并执行以上代码,输出结果为:

E:\Test>scalac Test.scala
E:\Test>scala Test
Returned Value : 12

Scala是一种函数式编程语言,所以函数是Scala的核心。接下来几篇文章将详细讲解Scala中的函数相关知识。本节先到这里。

相关文章

  • Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍...

  • Scala函数式编程(四)函数式的数据结构 下

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

  • Scala函数式编程(五) 函数式的错误处理

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

  • Scala编程基础10:Scala函数1

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

  • 第三讲函数详解

    Scala被认为是函数式编程语言,故Scala函数是Scala编程的核心。所以掌握scala的函数至关重要。 本章...

  • 函数式编程理解

    函数式编程理解 1)Scala中函数的地位:一等公民2)Scala中的匿名函数(函数字面量)3)Scala中的高阶...

  • Scala基础

    Scala概述 Scala设计的目的是整合面向对象编程和函数式编程。Scala运行于Java平台(JVM),并兼容...

  • Scala笔记

    Scala基础 学习twitter的scala教程的笔记 函数 函数定义,scala语法中可以使用多种方式定义函数...

  • Scala系列文章目录

    Scala(三)-①-函数式编程和异常 Scala(四)-①-面相对象初级 Scala(四)-②-面相对象中级-包...

  • Scala从入门到小工| 01

    Scala学习之一 Scala概述 scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性。sc...

网友评论

      本文标题:Scala编程基础10:Scala函数1

      本文链接:https://www.haomeiwen.com/subject/kfskdhtx.html