Scala数据类型

  • 不可变
  • 有类型的存储单元
  • 使用val声明
  • 可显式类型覆盖scala的自动类型推导

变量

  • 可变
  • 使用var声明
  • 更倾向于用,因为作为不可变的值更稳定,更具有可预测性

命名

  • 使用Camel Case写法:小写字母开头,剩余单词首字母大写

类型

  • 数值类型
    • Byte
    • Short
    • Int
    • Long
    • Float
    • Double
  • Scala可自动低等级到高等级(从上往下)进行转换
  • 正是Java同名的包装器
  • Scala不支持从高等级到低等级的自动转换:从存储空间较大的类型转换为存储空间变小的类型会丢失数据
  • 可通过toType手动转换

字符串

  • 字面量使用双引号(Char字面量使用单引号)
  • 相等运算符(==)与Java不同,Scala会检查真正的相等性,而不是对象引用相等性
  • 字符串内插:
    • 在字符串第一个双引号前增加s前缀,可以使用$指示外部数据的引用
    • 如果引用中有非字字符(如算式),或引用于周围文本无法区分,就需要使用可选的大括号({})

Scala类型

Scala数据类型

  • Nothing是所有类型的子类,他没有一个具体的实例对象,一个常见的应用如:抛出异常、程序exit,无限循环等。
  • Nothing也是Null的子类。Nothing没有对象,但是可以用来定义类型。例如,如果一个方法抛出异常,则异常的返回值类型就是Nothing(虽然不会返回) 。
  • 避免使用asInstanceOf[]:避免值无法转换为所请求的类型的报错