scala方法初探
在scala中,方法是定义在类中的(像Java一样),但你也可以在REPL中定义方法用于测试目的。这部分会展示一些方法的示例,你就可以看到语法是什么样的。
定义接收一个参数地方法
下面是你如何定义一个名为 double 的方法,它接收一个名为 a 的输入参数,返回那个整数的双倍值:
def double(a: Int) = a * 2
def 是用于定义一个方法的关键字,输入参数 a 的类型为 Int 。
当你把这个方法输入REPL后,你可以给它一个值来调用它:
scala> double(2)
res0: Int = 4
scala> double(10)
res1: Int = 20
显示方法的返回类型
先前的例子没有展示方法的返回类型,你可以显示它:
def double(a: Int): Int = a * 2
一些人更喜欢明确的声明方法的返回类型,这使得代码在未来的几周,几月,几年中更容易维护。
多个输入参数的方法
为了展示些更复杂的内容,下面这个方法接收两个输入参数:
def add(a: Int, b: Int) = a + b
下面是相同的方法,但是明确声明返回类型:
def add(a: Int, b: Int): Int = a + b
下面的方法接收三个输入参数:
def add(a: Int, b: Int, c: Int): Int = a + b + c
多行方法
当方法体变得更长时,可以把多行代码放到花括号里:
def addThenDouble(a: Int, b: Int): Int = {
val sum = a + b
val doubled = sum * 2
doubled
}
当在REPL中输入该方法后,可以这样调用:
scala> addThenDouble(1, 1)
res0: Int = 4