zoukankan      html  css  js  c++  java
  • 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类型,所以这里需要注意

  • 相关阅读:
    sql练手
    简单工厂模式和抽象工厂模式的区别:面向接口编程
    UML中聚合和组合的关系(笔记)
    如何修改SQL Server 2005服务器名称 (装载)
    .NET 图片处理剪裁
    sql server 中的汉字转化为拼音
    sql server while, case,if..else ... try catch ..对象
    String 和 StringBuilder 的相同点和不同点
    sql 折分字符串并修改数据库表中数据
    SQL Server 与 Excel,Access 数据表的导入导出(注:参照博园.NET大观)
  • 原文地址:https://www.cnblogs.com/javazyh/p/12986966.html
Copyright © 2011-2022 走看看