编程范式:命令式编程(c++,java,c),函数式编程
命令式编程:冯诺伊曼体系
函数式编程:图灵计算。lamada计算
数据计算量大,实时性要求高,cpu计算能力不断提升
函数式编程:发挥多核cpu多线程并发能力,变量不可更改
命令式编程:多线程之间的状态共享,锁机制进行并发控制
类似java的范式语言
martin odersky开发
面向对象,函数式编程两个风格
运行在java虚拟机上,兼容java
并发行号,轻量级函数(lamada表达式)
特质(Trait):没有被实现
foreach方法 容器遍历,列表继承容器
seq按0,1,2索引,map按键索引,set无序
序列容器从seq继承(LinearSeq,IndexedSeq)
LinearSeq:取头尾。。派生列表和队列
IndexedSeq:无序。。派生vector,ArrayBuffer
具体容器类
共享相同类型的不可变的对象序列
列表的值不可变
定义在包scala.collection.immutable下
初始化时就要复制
var slist=List(“a”,“b”)
挂结列表:var strlist=“s”::slist
哈希方法
可变集,不可变集
可变变量指向不可变集
导入scala.collection.immutable.Set
没有改变变量本身,改变指针指向。。。。我尝试的时候不可以
默认不可变
可变:scala.collection.mutable
不可变:scala.collection.immutable
先调用contains方法,确定键是否存在