scala函数
Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。
def 方法名(参数名: 参数类型): 返回值类型 = {
方法体
方法体最后一行为返回值,不需要return
}
object test{
def main(args: Array[String]): Unit = {
print(max(48,5))
}
def max(x: Int,y: Int): Int = {
if(x>y)
x
else
y
}
}
函数没有参数时,调用可以不写括号
def sum() = 1+2
直接调用sum
函数的返回值类型为unit代表没有返回值
可以在函数定义中参数定义默认值,不传参则用默认值
scala val定义的常量默认生成get方法 var方法默认生成get,set方法
def fac(n:Int) :Int = if (n<=0) 1 else n*fac(n-1)
Scala 函数 - 可变参数(变长参数)
Scala 允许你指明函数的最后一个参数可以是重复的,即我们不需要指定函数参数的个数,可以向函数传入可变长度参数列表。
Scala 通过在参数的类型之后放一个星号来设置可变参数(可重复的参数)。例如:
def sum( args:Int* ) = {
var result=0
for (arg<-args)result +=arg
result
}
val s=sum(1,4,9,16,25)
val s=sum(1 to 5)//错误
val s=sum(1 to 5:_*)//将1to5当做参数序列处理
异常处理
throw new IllegalArgumentException
try{
process(new URL(“http://horstmann. com/fred-tiny. gif”))
} catch{
case: MalformedURLException => println(“Bad URL:”+url)
case ex: IOException =>ex. printStackTrace()
}