• Scala基础


    1.变量和数据类型

    1.1 变量

    1.1.1 scala中有类型自动推断的功能,也就是定义变量的时候不需要指定类型

    var 类型定义的变量的是可变的,val类型定义的变量是不可变的,
     var age = 18
    age="tom"//错误 scala中的变量类型确定之后不能再修改了

         var num1 = 10   // 可变

         val num2 = 20   // 不可变

    重新赋值: 

            num1 = 30  // 正确

            //num2 = 100  //错误,因为num2是val修饰的

    反编译后查看num1和num2发现不可变的根本因为num2是用final修饰的

        private int num1;

        private final int num2;

     

    1.1.2 var和val修饰对象的时候,var修饰的对象的引用是可变的,val修饰的对象的引用是不可变的,但是他们的值都是可变的

    // p1是var修饰的,p1的属性可以变,而且p1本身也可以变

            var p1 = new Person()

            p1.name = "dalian"

            p1 = null

     

            // p2是val修饰的,则p2的属性可以变,但是p2本身不可变(即p2的内存地址不能变)

            val p2 = new Person()

            p2.name="xiaolian"

    //        p2 = null // 错误的,因为p2是val修饰的

     

    1.2 数据类型

    1.  scala中有值类型和引用类型,null类型是所有引用类型的子类,
    2. 常见数据类型和java一致
    3. scala中低精度向高精度转换时和java一致,会隐式转换
    4. nothing类型是所有数据类型的子类,如果一个函数没有返回值可以用nothing
    5. unit是函数类型,stringops是

    1.2.1 常见数据类型

     整型:

    数据类型

    描述

    Byte [1]

    8位有符号补码整数。数值区间为 -128 到 127

    Short [2]

    16位有符号补码整数。数值区间为 -32768 到 32767

    Int [4]

    32位有符号补码整数。数值区间为 -2147483648 到 2147483647

    Long [8]

    64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 = 2的(64-1)次方-1

    byte类型最小-128,最大127

            // 正确

            var n1:Byte = 127

            var n2:Byte = -128

     

            // 错误

            // var n3:Byte = 128

            // var n4:Byte = -129

     

    声明long类型的时候需要显示指定,比如

    val a=10L  //如果不指定就是int类型,所以这里需要注意

  • 相关阅读:
    redis 笔记
    经验:什么影响了数据库查询速度、什么影响了MySQL性能 (转)
    对于线程安全的一些理解
    重要的接口需要做哪些检查(转)
    数据库分库分表思路
    代码优化:Java编码技巧之高效代码50例
    java new一个对象的过程中发生了什么
    java如何防止反编译(转)
    运用加密技术保护Java源代码(转)
    redis 工具包
  • 原文地址:https://www.cnblogs.com/javazyh/p/12986966.html
Copyright © 2020-2023  润新知