理论教育 函数定义与返回结果类型

函数定义与返回结果类型

时间:2023-11-24 理论教育 版权反馈
【摘要】:在Scala交互式命令行中输入函数定义,可以看出即使没有在函数定义中明确定义返回结果的类型,但编译器识别unitTest的返回类型仍为Unit。Scala函数返回值unit省写的例子。因此在Scala中不管函数有无返回结果都明确定义返回结果类型,无返回结果就定义为Unit。

函数定义与返回结果类型

1.函数格式 Scala函数定义的格式如下:

其中,参数列表的格式为逗号分隔的参数声明,声明格式为:参数名称:参数类型。参数列表也可以为空。

函数的定义以def开始,def是Scala语言中的关键字,定义一个函数的名字,示例中函数名使用looper;然后使用()包含函数的参数列表,以下的looper函数中包括两个参数x和y,类型为长整型(:Long),参数之间用逗号分隔;然后是函数的返回值类型,也是长整型(:Long);函数返回结果类型之后使用等号和一对花括号表示函数体,在Scala交互式命令行中输入looper的函数定义,可以看出looper的函数返回结果为Long。如例1-7所示。

【例1-7】Scala looper函数的定义。

如果函数定义中没有返回值,可以显性地定义函数返回结果类型为Unit,相当于返回一个空值。

Unit也可以省写,表示没有显性指定返回值类型。在Scala交互式命令行中输入函数定义,可以看出即使没有在函数定义中明确定义返回结果的类型,但编译器识别unitTest的返回类型仍为Unit。如例1-8所示。

【例1-8】Scala函数返回值unit省写的例子。(www.daowen.com)

Scala中编译器有时需知道函数结果类型的定义,如函数是递归函数,那么函数结果类型需明确在函数中定义。因此在Scala中不管函数有无返回结果都明确定义返回结果类型,无返回结果就定义为Unit。

2.函数的调用

和Java方法中返回值使用不太一样,在Scala中无须使用return等关键字,Scala函数体中最后一行的值就是整个函数的返回值。

函数定义好以后,就可以通过函数名来调用:

之前在Scala交互式命令行定义了looper函数,也可以在Scala命令行中通过函数名looper及输入两个参数(100,298)来调用函数,显示函数的结果为2,返回结果类型为Long。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈