zoukankan      html  css  js  c++  java
  • Scala学习笔记(2)-类型注意

    Scala类型注意事项:

    1.Any是绝对的根,所有的其他可实例化类型均有AnyVal和AnyRef派生。

    2.所有AnyVal的类型成为值类型(所有数值类型、char、Booble和Unit)

    3.而其他类型都以AnyRef(引用类型)为根,并且只能做为对象在堆中分配内存,通过一个内存引用来访问。

    4.Scala中提供了null类型表示空类型,意味着对象不指向任何堆内存空间。

    5.Scala语法更加优先使用实际类型和实例而不是保留字,如null

    6.Unit类型与上述类型均不同,它是一种指示没有任何数据的类型,类似于java中的Void

       定义Unit变量使用()即可,也可以用Unit定义值或变量,通常用于定义函数和表达式,如无返回值函数

       Unit类型在Scala中作为不返回任何结果的或表达式类型,如println函数返回的是一个Unit类型,因为不反悔任何结果

    7.常用的类型操作

      asInstanceOf[<type>]  将值转化为指定类型,建议在此之前使用to<type>完成操作转换,以免导致错误

    eg:scala> 5.asInstanceOf[Long]

    res2: Long = 5

      getClass 返回一个值的类型

    scala> (1.0/5).getClass
    res3: Class[Double] = double

      isInstanceOf 如果这个值有指定类型则返回true

    scala> (5.0).isInstanceOf[Float]
    res4: Boolean = false

      hashcode 散列码

    scala> "A".hashCode
    res6: Int = 65

    scala> 'A'.hashCode
    res7: Int = 65

      to<type> 转换函数

    scala> 20.toByte
    res8: Byte = 20

    scala> 47.toFloat
    res9: Float = 47.0

      toString 将值输出为字符串

    eg:scala> (3.0/4.0).toString
    res10: String = 0.75

    8.其他

    Char类型举例:

    scala> val c='A'
    c: Char = A

    scala> val i:Int =c
    i: Int = 65

    scala> val t:Char=c
    t: Char = A

    Boolean类型举例:

    scala> val isTrue= !true
    isTrue: Boolean = false

    scala> val isfalse= !false
    isfalse: Boolean = true

    scala> val unequal=(5!=6)
    unequal: Boolean = true

    scala> val isLess =(5<6)
    isLess: Boolean = true

    与运算符

    scala> val unequalAndLess= unequal & isLess
    unequalAndLess: Boolean = true

    scala> val definitelyFalse=false && unequal
    definitelyFalse: Boolean = false

    如果需要一个值的状态为Boolean类型,需要显式比较

    scala> val zero=0
    zero: Int = 0

    scala> val isValid=zero > 0
    isValid: Boolean = false

    Unit类型

    scala> val nada=()
    nada: Unit = ()

    9.元祖

    元祖的创建和使用

    scala> val info=(5,"Keroben",true)
    info: (Int, String, Boolean) = (5,Keroben,true)

    scala> val name=info._2
    name: String = Keroben

    使用->创建key和value

    scala> val red="red" -> "Oxff0000"
    red: (String, String) = (red,Oxff0000)

    scala> val reversed =red._2->red._1   #转化类型
    reversed: (String, String) = (Oxff0000,red)

  • 相关阅读:
    学习博客
    file-max与ulimit的关系与差别
    buffer cache chain 图
    计算机体系结构 ---图2
    计算机体系结构-图
    工作于内存和文件之间的页缓存, Page Cache, the Affair Between Memory and Files
    Linux Kernel: buffers和cached的区别
    lnux内核的malloc实现(Oracle的cache buffer影子)
    内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现
    Linux 内核的文件 Cache 管理机制介绍-ibm
  • 原文地址:https://www.cnblogs.com/jackchen-Net/p/6640377.html
Copyright © 2011-2022 走看看