Scala 基础知识
Posted 微数营
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala 基础知识相关的知识,希望对你有一定的参考价值。
10. 模式匹配
模式匹配是Scala中的概念,它看上去类似于其他语言的switch语句,但实际上它的功能比switch语句功能要强大得多。
模式匹配的一个简单用法就是替代多层的if-else语句。如果代码中有多于两个分支的if-else语句,使用模式匹配能提供代码的可读性。例子:
val num = color match {
case "Red" => 1
case "Blue" => 2
case "Green" => 3
case _ => 0
}
这里,模式不包括一系列备选项,每个替代项以关键字大小写为单位。每个替代方案包括一个模式和一个或多个表达式,如果模式匹配,将进行评估计算。箭头符号=>将模式与表达式分离。
不同于switch语句,模式匹配中一旦有一个选项匹配那么该选项对应的代码就会执行,而且代码中不需要有break语句,匹配选项后的其他选项对应代码并不会被执行。模式匹配中每个选项对应的代码都是表达式,表达式返回一个值,因此模式匹配本身就是一个返回 一个值的表达式。
11. Scala异常
Scala的异常处理类似其他语言,它使用try { ... } catch { ... }来处理异常。代码中可以通过throw来抛出异常:throw new IllegalArgumentException。
Scala允许在单个块中try/catch任何异常,然后使用case块对其进行模式匹配。无论case块如何终止,都会执行在finally子句中的表达式。例子:
try {
val f = new FileReader("input.txt")
} catch {
case ex: FileNotFoundException =>{
println("Missing file exception")
}
case ex: IOException => {
println("IO Exception")
}
} finally{
println("Exiting finally...")
}
12. 文件I/O
Scala可以使用任何Java对象,java.io.File是Scala编程中可用于读取和写入文件的对象之一,例子:
val writer = new PrintWriter(new File("test.txt" ))。
如果需要从屏幕中读取用户输入,然后继续进行下一步的处理,例子:
val line = Console.readLine。
从文件读取数据很简单,可以使用Source类及其对象,例子:
Source.fromFile("Demo.txt" ).foreach {
}
以上是关于Scala 基础知识的主要内容,如果未能解决你的问题,请参考以下文章