• 类、对象、基础类型、操作(Scala)


    类和对象

    在类定义中,有字段filed和方法method,统称为成员member,通过val和var定义字段指定对象的变量。通过def定义方法。(和Python一样)实例一个类后,会指派一些内存来保存对象的状态图。个人理解对通过地址间映射,有一块内存保存值。

    对字段声明私有。在var、val前加。不加,就是共有public。

    class Checksum {
        private var sum = 0
    }
    

    单例对象

    Scala的类不允许有静态成员static。对此类使用场景,Scala提供了单例对象。将class关键字替换成object。当单例对象和某个类共用同一个名字时,称作这个类的伴生对象。类又叫作这个单例对象的伴生类,可以互相访问对方的私有成员。可以把单例对象当作用于安置Java编写的静态方法。

    应用程序

    没有同名的伴生类的单例对象成为孤立对象。孤立对象的作用:将工具方法归集在一起,或定义Scala应用程序的入口。

    要运行一个Scala程序,必须提供一个独立对象的名称。这个独立对象要包含main方法,该方法接收一个Array[String]作为参数,结果类型为Unit。

    import ChecksumAccumulator.calculate
    //calculate是单例对象ChecksumAccumulator的一个方法,不用实例,直接调用
    
    object Summer {
        def main(args : Array[String]) = {
            for (arg <- args)
                println(arg + ":" + calculate(arg))
        }
    }
    

    Scala和Java的区别之一,Java要求你将公共的类放入跟类同名的文件中,Scala可以任意命名.scala文件。

    基础类型和操作

    Scala的基础类型和Java对应的类型取值区间完全相同。

    整数字面量

    0X十六进制,没有其他修饰就是十进制,以L结尾就是LONG型。

    浮点数中,没有其他修饰就是double类型,如果以f结尾就是float类型。

    字符中,字符字面量由一对单引号和中间的任意Unicode字符组成。转义字符。

    val a = 'A'
    val a = 'u0041'
    

    字符串由双引号里的字符组成。可以用""" """来表示原生字符串。

    整体上,和Java相似,没有什么不同。

    字符串插值

    val name = "reader"
    println(s"Hello, $name!")
    

    s出现在首个双引号前,Scala将使用s这个字符串插值器来处理该字面量,对内嵌的每个表达式求值,对求值结果调用toString。
    共有三种字符串插值器,s、f和raw。

    操作符

    Int包含多个重载的+方法,分别接收不同的参数类型。

    位运算操作

    &按位与,|按位或,^按位异或,~位补码操作(对每一位取反)。<<左移,>>右移,>>>无符号右移。

    ==

    Scala的==和Java不同,对于引用类型,Java的==比较的是引用相等性,即两个变量指向JVM堆上的同一个对象。

  • 相关阅读:
    [ Linux ] rsync 对异地服务器进行简单同步
    [ Skill ] 遍历整个项目设计的两个思路
    [ Skill ] 不常用的函数笔记
    [ Perl ] Getopt 使用模板
    [ Skill ] 两个 listBox 数据交换的模板
    [ Linux ] "真"后台 nohup
    [ VM ] VirtualBox 压缩 .vdi
    [ Skill ] Layout 工艺移植,还原库调用关系
    win8 hyper-v 禁用不必卸载虚拟机
    BM算法解析(计算机算法-设计与分析导论(第三版))
  • 原文地址:https://www.cnblogs.com/chenshaowei/p/13112215.html
Copyright © 2020-2023  润新知