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 { 

            print 

        }


以上是关于Scala 基础知识的主要内容,如果未能解决你的问题,请参考以下文章

Scala:基础知识01

Scala:基础知识04

Scala 基础—— 基础类型和基础操作

Scala:基础知识03

Scala:基础知识02

Scala之旅-基础