【Scala】思维导图


思维导图:http://naotu.baidu.com/file/8ac705df572cd2f131aff5f0ed9c4c88?token=871f7d35671c6287

Scala
算术运算
math.exp(10)
输入输出
输入:StdIn.readLine("请输入")
读文件:Source.fromFile("xx.txt").getLines.mkString
写文件:new PrntWriter("xx.txt").println("haha")
包的使用
导入全部:import xx._
引入部分:import xx.{A, B}
导入后重命名:import scala.io.{Source => Src}
语法规则
$可以当做字母,例如1. $plus(2)
关键字加``可以避免冲突,如val `yeild` = 1
字符串可以用"""   """包围进行格式化
判断数据类型isInstance[Int]/a.getClass==classOf(Int)
标点:=>匿名函数,<-for循环迭代器,->Map键值对,_占位符(匿名函数参数或导包的通配符)
4种执行方式
数据结构
无序的放在scala.collection.mutable包,有序的放在immutable
ArrayBuffer:不定长数组,Tuple 元组有序可存放不同类型
Option 选项表示有可能包含值的容器,Iterator 迭代器可以遍历容器
val a = ListBuffer(1, 2, 3) 判断a.instanceOf(Mutable)
字符串
拼接可以不带.,如"你" concate "好"
s插值器、f插值器各种类型、raw插值器保持原型
数组Array
定义val arr : Array[Any] = new Array[Any](3)
构造相当于隐式调用Array.apply,或range、tabulate
多维数组可以使用两个for循环、fill或tabulate
操作:slice切片、排序sorted、转换.toBuffer,删除元素dropRight(3)
列表List
集合Set
映射Map
元组Tuple
迭代器Iterator
选项Option
判断集合中的值是否存在,getOrElse或isEmpty
选择结构
变量 match{ case 1 => xxx}
循环结构
异常捕获
catch{case ex : IOException =>xxx}
函数定义
匿名函数
高阶函数
类的定义
getter和setter
构造器
单例对象和伴生对象
Object和Class同名,被称为伴生类和伴生对象,其信息可以共享
伴生类和伴生对象在编译完成后会被放在同一个类中
只有一个object叫做单例对象
继承和特征
trait特征
apply,unapply和update