scala-02函数定义、流程控制、异常处理
一、Scala函数定义:
(scala函数定义时候默认会导入包)
(1)val:类似java中final类型的变量(常量)
1,基本格式:val 变量名:变量类型 = 值
2,其中有时变量类型可以省略,可以自动识别
3,变量不能赋值,修改
var :等同于java中的非final型变量
(2)有参数的函数定义
def 函数名(参数列表,...):返回结果类型={}
Object MyScala{
def Mysca(x:int ,y:int):int={
Var a=x
Var b=y
While(a!=0){
Var temp=a
b=b%a
b=temp
}
b
}
Println(Mysca(120,230))
}
① 有时函数必须制定返回结果类型,如函数时递归,就必须明确制定返回结果类型;
② 如果函数仅 一个语句,连花括号都可以不写。如是max函数就成了这样,作用功能仍然没有变化;
③ Scala语言在进行函数调用时可不加();
④ Scala语言在编写的时候亦可以不用加“;”
⑤ Scala中,i++或者++i都不能其作用,只能使用i=i+1
⑥ foreach与函数字面量
函数字面量格式:参数列表 => 函数体
(x: Int, y:Int) => x + y
⑦ for循环中是val类型,因此在for表达式中不能重新对其赋值, <-可以理解为其中的意思for(arg <- args)
注:Scala 三元符表达示例:
var file=if(!args.isEmpty)args(0) else scala.xml
二、异常处理
Scala中异常机制与Java和C++中一样。但Scala中并没有受检异常,也就是不需要说明函数方法可能会抛出什么异常。
使用throw来抛出一个异常。throw表达式的类型是Nothing。
如果不需要使用捕获的异常对象,使用_来代替变量名(_是Scala中的通配符)同时也有try/finally语句,通常用来清理。可以组合成try/catch/finally语句
抛出一个异常看起来类似于Java。创建一个异常对象,然后使用throw关键字把它抛出
throw new IllegalArgumentException
捕捉异常:ry/catch在一个单独的块捕捉任何异常,然后使用case块进行模式匹配。