方法的定义和使用
格式
def 方法名(参数1:类型,参数2:类型...):返回类型 ={
方法体
}
注意事项
一定要识别关键字眼 def
如果方法体只有一行,其中**{}**可以省去不写
方法的返回类型可以不写,Scala编译器可以自动推导
递归方法除外,必须定义返回类型
//实现两个整数的相加
[root@node01 ~]# scala //启动Scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_65).
Type in expressions for evaluation. Or try :help.
scala> def aa(x:Int,y:Int):Int = {X+Y} //定义方法时,要注意参数大小写一致性
<console>:11: error: not found: value X
def aa(x:Int,y:Int):Int = {X+Y}
^
<console>:11: error: not found: value Y
def aa(x:Int,y:Int):Int = {X+Y}
^
scala> def aa(x:Int,y:Int):Int = {x+y} //正确写法
aa: (x: Int, y: Int)Int
scala> def aa(x:Int,y:Int)=x+y //只有一行代码,可以省略{},一般方法可以不用定义返回类型
aa: (x: Int, y: Int)Int
scala> aa(9,"aaaa") //在使用方法时,要注意形参和实参的数据类型是否一致
<console>:13: error: type mismatch;
found : String("aaaa")
required: Int
aa(9,"aaaa")
^
scala> def aa(6,8) // 使用方法时,不用写方法的关键字 def
<console>:1: error: identifier expected but integer literal found.
def aa(6,8