scala语言学习
编程范式:命令式编程(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
向量
range
集合
哈希方法
可变集,不可变集
不可变集+可变变量
可变变量指向不可变集
可变集+不可变变量
导入scala.collection.immutable.Set
没有改变变量本身,改变指针指向。。。。我尝试的时候不可以
映射
默认不可变
可变:scala.collection.mutable
不可变:scala.collection.immutable
先调用contains方法,确定键是否存在