美文网首页Scala
scala-01-变量

scala-01-变量

作者: chen_666 | 来源:发表于2020-04-04 12:50 被阅读0次

    1.变量的定义

    var | val 变量名 [: 变量类型] = 变量值

    2.注意事项

    1. 声明变量时,类型可以省略(就是叫 类型推断)
    2. 类型确定后,就不能修改,说明Scala 是强数据类型语言.
    3. 在声明/定义一个变量时,可以使用var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改 [案例].(推荐使用val,线程安全,使用效率高)
    4. val修饰的变量在编译后,等同于加上final
    5. var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的。(比如: 自定义对象、数组、集合等等
    6. 变量声明时,需要初始值
    var name: String = "smith"
    var num1 = 100 //类型推断 
    //num1 = "jack"  类型确定后就不能再修改
    //var 是可以变的。
    var name = "小红"
        name = "小黑"
        //val 是不可变的变量
    val namel = "小白"
        //namel = "小黄"
    val (month, age, ticket) = (8, 20, 60.0) //可一次性定义多个变量
    

    3.数据类型

    image.png
    1. Any是所有类的根类型,即所有类的父类(基类)
    2. 在scala中类分为两个大的类型分支(AnyVal [值类型,可以理解成java的基本数据类型], AnyRef类型)
    3. 在AnyVal 虽然叫值类型,但是仍然是类(对象)
    4. 在scala中有两个特别的类型(Null ), 还有一个是Nothing
    5. Null 类型只有一个实例 null, 他是bottom class ,是AnyRef的子类.
    6. Nothing 类型是所有类的子类, 它的价值是在于因为它是所有类的子类,就可以将Nothing类型的对象返回给任意的变量或者方法,比如案例
      def f1():Nothing= { //表示f1方法就是没有正常的返回值,专门用于返回异常
      throw new Exception("异常发生")
      }
    7. 在scala中仍然遵守 低精度的数据自动的转成 高精度的数据类型。
    8. 在scala中,Unit 类型比较特殊,这个类型也只有一个实例 ()
    9. 强制类型转换,自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外要注意
    val num = 2.22.toInt
    println(num)//2
    

    相关文章

      网友评论

        本文标题:scala-01-变量

        本文链接:https://www.haomeiwen.com/subject/kwwdphtx.html