在这里,我们区分了Scala中的方法和函数。好多人认为Scala中的方法和函数没有区别,或认为是一样的。其实,方法和函数还是有所区别,但有时可以互相转换。我们还是详细给大家介绍下。
这次我们先来看Scala中的方法。Scala中方法的作用实际跟其他语言没什么区别,方法都是实现一段业务逻辑,抽取方法都是为了更好地实现代码的复用。我们来看Scala是如何定义方法的。因为很多小伙伴对Java都很熟悉了。我们和Java对比来看一下。
Java中的方法定义:
Scala中的方法定义:
def是关键字,定义方法时我们需要注意以下几点:
1. 尽管定义变量可以省略类型不写,但所有参数都必须指明类型。
2. 如果方法体只有一行,则方法体可以与方法声明写在一行并省略{}。
3. 通常定义方法时,可以省略返回值类型,Scala会根据方法体推断出返回值类型。但有两种情况不能省略
A.递归方法,如:
B.有return关键字的方法,必须指明返回值类型。如:
4.Java中可以定义可变长度参数的方法,Scala中同样可以。如:
这里的n是一个可变长的参数,相当于一个数组,所以可以用n.sum求所有参数的和。
好了,Scala中的方法我们就介绍到这了,下次我们来看Scala中的函数。