Scala 数据类型

  • 数据类型

    Scala具有与Java相同的所有数据类型,并且具有相同的内存占用量和精度。以下表格详细说明了Scala中所有可用的数据类型-
    数据类型 说明
    Byte 8位有符号值。 范围-128至127
    Short 16位有符号值。 范围-32768至32767
    Int 32位有符号值。 范围-2147483648至2147483647
    Long 64位有符号值。 -9223372036854775808至9223372036854775807
    Float 32位IEEE 754单精度浮点数
    Double 64位IEEE 754双精度浮点数
    Char 16位无符号Unicode字符。 范围从U+0000到U+FFFF
    String 字符序列
    Boolean 字面值true或字面值false
    Unit 对应无值
    Null 空或空引用
    Nothing 其他所有类型的子类型; 包含无值
    Any 任何类型的超类型; 任何对象的类型为Any
    AnyRef 任何引用类型的超类型
    上面列出的所有数据类型都是对象。没有像Java中那样的原始类型。这意味着您可以在Int,Long等上调用方法。
  • Scala基本字面量

    Scala用于字面量的规则既简单又直观。本节说明所有基本的Scala 字面量。
    Int字面量
    整数字面量通常为Int类型,或者后跟L或l后缀的则为Long类型。这是一些整数字面量-
    
    0
    035
    21 
    0xFFFFFFFF 
    0777L
    
    浮点字面量
    浮点字面量后跟浮点类型后缀F或f的类型为Float,否则为Double的类型。这是一些浮点字面量-
    
    0.0 
    1e30f 
    3.14159f 
    1.0e100
    .1
    
    布尔字面量
    布尔字面量truefalse是布尔类型的成员。
    符号字面量
    符号字面量'x是表达式scala.Symbol(“ x”)的缩写。Symbol是一个case类,其定义如下。
    
    package scala
    final case class Symbol private (name: String) {
       override def toString: String = "'" + name
    }
    
    字符字面量
    字符字面量是用引号引起来的单个字符。该字符可以是可打印的Unicode字符,也可以由转义序列描述。这是一些字符字面量-
    
    'a' 
    '\u0041'
    '\n'
    '\t'
    
    字符串字面量
    字符串字面量是双引号中的字符序列。这些字符要么是可打印的Unicode字符,要么由转义序列描述。这是一些字符串字面量-
    
    "Hello,\nWorld!"
    "This string contains a \" character."
    
    多行字符串
    多行字符串文字是用三引号""" ... """括起来的一系列字符。字符序列是任意的,除了它只能在最后包含三个或更多连续的引号字符。字符不一定可以打印;换行符或其他控制字符也是允许的。这是多行字符串文字-
    
    """the present string
    spans three
    lines."""
    
    空值
    null值的类型为scala.Null,因此与每种引用类型都兼容。它表示参考值,该参考值引用特殊的“null”对象。
  • 转义序列

    以下转义序列可以在字符和字符串文字中识别。
    转义序列 Unicode码 描述
    \b \u0008 退格BS
    \t \u0009 水平制表符
    \n \u000c 换行符
    \f \u000c 换页符
    \r \u000d 回车符
    \" \u0022 双引号"
    \' \u0027 单引号'
    \\ \u005c 反斜杠\
    Unicode在0到255之间的字符也可以用八进制转义符表示,即反斜杠'\',后跟最多三个八进制字符的序列。以下是显示一些转义序列字符的示例-
    
    object Test {
       def main(args: Array[String]): Unit = {
          println("Hello\tWorld\n\n" );
       }
    } 
    
    编译并执行上述代码后,将产生以下结果-
    
    Hello   World