Scala语言介绍

Posted by Jackson on 2017-10-13

Scala之chapter01

Scala语言特点:

Scala 是一门以 java 虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。

  • 1.Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala 支持面向对象和函数式编程
  • 2.scala 源代码(.scala)会被编译成 Java 字节码(.class),然后运行于 JVM 之上,并可以调用现有的Java 类库,实现两种语言的无缝对接。
  • 3.scala 单作为一门语言来看, 非常的简洁高效 (三元运算, ++ , --)
  • 4.搞清楚 Scala 和 java 相同点和不同点,就可以快速的掌握
  • 5.学习 scala的特有的语法,区别 scala和 Java,如何规范使用 scala。

正确的缩进和空白

  • 1.使用一次 tab 操作,实现缩进,默认整体向右边移动,时候用 shift+tab 整体向左移
  • 2.或者使用 ctrl + alt + L 来进行格式化 [演示]
  • 3.运算符两边习惯性各加一个空格。比如:2 + 4 * 5。
  • 4.一行最长不超过 80 个字符,超过的使用换行展示,尽量保持格式优雅

Scala变量的使用

  • 1.声明变量时,类型可以省略(编译器自动推导,即类型推导)
  • 2.类型确定后,就不能修改,说明 Scala 是强数据类型语言.
  • 3.在声明/定义一个变量时,可以使用 var 或者 val 来修饰, var 修饰的变量可改变,val 修饰的变量不可改
  • 4.val 修饰的变量在编译后,等同于加上 final。
  • 5.var 修饰的对象引用可以改变,val 修饰的则不可改变,但对象的状态(值)却是可以改变的。

数据类型

  • 1.Scala 与 Java 有着相同的数据类型,在 Scala 中数据类型都是对象,也就是说 scala 没有 java 中的原生类型。
  • 2.Scala 数据类型分为两大类 AnyVal(值类型) 和 AnyRef(引用类型), 注意:不管是 AnyVal 还是 AnyRef 都是对象。
  • 3.相对于 java 的类型系统,scala 要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起。

数据类型结构

  • 1.在 scala 中有一个根类型 Any ,他是所有类的父类.
  • 2.scala 中一切皆为对象,分为两大类 AnyVal(值类型), AnyRef(引用类型), 他们都是 Any 子类.
  • 3.Null 类型是 scala 的特别类型,它只有一个值 null, 他是 bottom calss ,是 所有 AnyRef 类型的子类.
  • 4.Nothing 类型也是 bottom class ,他是所有类的子类,在开发中通常可以将 Nothing 类型的值返回给任意变量或者函数, 这里抛出异常使用很多.
  • 5.在 scala 中仍然遵守,低精度的值,向高精度的值自动转换(implicit conversion) 隐式转换.