scala学习总结1

  1. scala执行流程:
    ①源文件(scala)=scalac(编译)=> 字节码文件(.class) =scala(运行)=> 结果
    ②源文件(scala) =scala(运行)=> 结果(速度较慢)
  2. scala变量:
    ①var修饰:该变量可以改变值
    ②val修饰:该变量值不可变,等同于用final修饰(建议使用)
    ③变量声明是必须初始化
  3. scala数据类型图:

注:
①Any中定义了isInstanceOf、asInstanceOf方法,以及哈希方法等。
②Null类型的唯一实例就是null对象。可以将null赋值给任何引用,但不能赋值给值类型的变量

数据类型详解列表:

  1. scala的关键字:

  2. 函数(function) 的的注意细节:
    ①当函数没有形参时,调用该函数可以省略()
    ②函数可以根据函数体的最后一行代码自动推断返回值类型,此时可以省略return
    ③在省略return的情况下,函数的返回值也可以省略。
    ④如果函数明确使用return关键字,则要明确写成 【 :类型 =】形式,若不写则返回 ()
    ⑤函数中可以再定义函数,类中可以再定义类,方法中可以再定义方法。
    ⑥Scala函数的形参,在声明参数时,直接赋初始值(默认值),这时调用函数时,如果没有指定实参,则会使用默认值。如果指定了实参,则实参会覆盖默认值。
    ⑦如果函数存在多个参数,每一个参数都可以设定默认值,那么这个时候,传递的参数到底是覆盖默认值,还是赋值给没有默认值的参数,就不确定了(默认按照声明顺序[从左到右])。在这种情况下,可以采用带名参数 。
    ⑧scala 函数的形参默认是val修饰的,因此不能在函数中进行修改。
    ⑨递归函数未执行之前是无法推断出来结果类型,在使用时必须有明确的返回值类型

  3. 惰性函数:
    ①当函数返回值被声明为lazy时,函数的执行将被推迟,直到我们首次对此取值,该函数才会执行,这种函数就称为惰性函数。
    ②我们在声明一个变量时,如果给声明了 lazy ,那么变量值得分配也会推迟。 比如 lazy val i = 10
    ③lazy不能修饰var变量

  4. 异常处理小结:
    ①Scala的异常的工作机制和Java一样,但Scala没有编译异常这个概念,异常都是在运行的时候捕获处理。
    ②用throw关键字,抛出一个异常对象。所有异常都是Throwable的子类型。throw表达式是有类型的,就是Nothing,因为Nothing是所有类型的子类型,所以throw表达式可以用在需要类型的地方
    ③finally子句用于执行不管是正常处理还是有异常发生时都需要执行的步骤,一般用于对象的清理工作,这点和Java一样。
    ④实例:

    try {
          val r = 10 / 0
    } catch {
       case ex: ArithmeticException=> println("捕获了除数为零的算数异常")
       case ex: Exception => println("捕获了异常")
       } finally {
        // 最终要执行的代码
       println("finally...")
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值