一、基础知识
1、定义 函数名 参数 函数体
返回值age自动判断为int类型
2、只要函数体不包含递归语句,scala就可以推断出返回类型
3、如果是单行函数,可以省略{}。如 def sayHello(name: String ,age: Int) = printf("haha"+name)
4、如果需要返回类型:sayHello(name: String): Int{xxx}
二、默认参数和带名参数
1、默认参数 :def sayHello(name: String="zhangsan")=printf("name="+name)
如果name不传值,默认为zhangsan
2、带名参数:def sayName(first: String,second: String)=printf("name="+first+second)
使用时:sayName("zhangsan",second="lisi")
3、变长参数:def sum(nums: Int*)={
var result=0;
for(num<- nums){
result+=num;
}
result
}
运行 sum(1,2,3)返回6
4、使用序列调用变长参数
sum(1 to 5: _*)
1 to 5是一个数组类型,_*会将数组转为函数入参的类型序列值
三、过程、lazy值和异常
过程即没有返回值的函数,有两种定义方式:函数名后不用=连接{},或将返回值类型定义为Unit
lazy var line=fromFile("xxx");此时代码不会读取文件内容,只要在使用时才会真正执行。
异常处理: