您的位置:首页 > 其它

Scala基础学习之函数定义,流程控制,异常处理

2017-12-10 13:57 357 查看
在scala中,参数传递与JAVA中有些许不同,scala的理念里提倡变量名比变量类型更加迫切的需要知道,因此变量名应该出现在变量类型前面,同时通过:来解释该变量的变量类型,同时整个函数的返回类型紧跟在参数之后,通过:来解释,scala中的代码块有返回值,一般是代码块的最后一句作为返回值,当然你也可以直接return一个值,返回类型与函数代码块之间通过一个=连接

def isOdd(number:Int):String={
var res=""
if(number%2==0)
res="it's a Even number!"
else
res="it's a Odd number!"
res
}


在scala中,if else语句也是有返回值的,比如你可以将上述函数代码块中写成如下:

def isOdd(number:Int):String={
var res=""
res=if (number%2==0) "it's a Even number!" else "it's a Odd number!"
res
}


在流程控制中当然有顺序结构,选择结构,循环结构。顺序结构就不赘述,选择结构如上if else 所示,下面谈谈循环结构

def main(args: Array[String]): Unit = {
for(i <- 1 to 5)
println(i)
}


<-表示提取符,从生成的1到5中依次提取元素到i,循环变量中的i不必事先声明,这里的1 to 5其实是调用了1.to(5)方法,to方法有很多重载方法,包括可以控制生成的序列的步长等

def main(args: Array[String]): Unit = {
for(i <- 1.to(5))
println(i)
}


下面谈谈异常处理,scala的异常处理同JAVA非常类似,先尝试执行try代码块的内容,遇到出错的代码行会跳转到catch代码块匹配对应的Exception,执行相应操作后再执行finally代码块(finally代码块可省略)

def main(args: Array[String]): Unit = {
var n=9
try {
var half=if (n%2==0) n/2 else throw new RuntimeException("not an even number")
println(half)
} catch {
case t: Throwable => println("error message is :"+t.getMessage)// TODO: handle error
} finally{
println("this is finally block")
}
}
//error message is :not an even number
//this is finally block
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: