• 一切值都是对象,scala是面向对象的语言
  • 一切函数都是值,scala是一门函数式编程语言

    变量和基本数据类型

  • var才能用占位符_初始化,val不能用占位符初始化,不然会报错

  • val才能用lazy修饰,var不行
  • """some string"""通过三个双引号把字符串包裹起来,可以原样输出字符串内容
  • scala的对象比较 == 等同于equals,基于内容比较,与java不同(基于内存地址比较)
  • Scala中和String和Java中的String是等价的,但是Scala中的String有更多便捷方法,因为scala会把String转换成StringOps类型对象

  • :: List构造
  • ::: List拼接
  • 以上两个都是右操作


集合

  • Any,Class Any is the root of the Scala class hierarchy.
  • AnyVal 是所有值类型(9种基本数据类型)的父类型
    • [[scala.Double]], [[scala.Float]], [[scala.Long]], [[scala.Int]], [[scala.Char]], [[scala.Short]], and [[scala.Byte]] are the ‘’numeric value types’’.
    • [[scala.Unit]] and [[scala.Boolean]] are the ‘’non-numeric value types’’.
  • [Seq,Set,Map] -> Iterable —> Traversable —> TraversableOnce scala集合框架的大致继承路线

  • 数组
    • Array
      • 可以直接使用Array(“a”,”b”)进行new操作的数据定义,本质上是调用了Array伴生对象 的apply方法
    • ArrayBuffer

  • List
    • :: 头尾相接的非空列表
    • Nil 空列表,都是List的子类