Scala
Scala的安装(Windows)
Scala交互式REPL编程实践
val和var变量区别
val变量声明时必须初始化,初始化后不能再次赋值
var变量是可变的,可以被多次赋值
Scala变量有类型推断机制,也可以在定义变量时用冒号指定数据类型
immutable/mutable集合及其操作
mutable:可变包
immutable:不可变包
可变集合增加对象后会创建一个新的可变集合,指向原集合
不可变集合可以在原集合上改变
不可变映射,不能修改,可变映射可以直接修改
简单的类与对象
类:
class声明,类名首字母大写,字段和方法统称为成员,建议小写。方法用def定义。默认权限为公有,可以设置权限,private,protect。
可以有内部类,get,set方法等价于 value,value_ 方法。所有方法参数为不可变类型,不能使用val,var来限定。允许方法嵌套。
除类方法外的语句都将在构造其中执行,类主体为构造器。没有静态成员。
单继承,只继承val成员,使用extends关键字,可以有抽象类,用abstract关键字声明,重载父类非抽象方法必须要使用override关键字
支持参数化类型
对象:object关键字替换class关键字,单例对象在第一次访问时初始化,没有同名类的单例对象,被称为孤立对象,伴生对象和伴生类必须位于同一个文件中。伴生对象的方法只能通过伴生对象调用,不能通过伴生类的实例直接调用。
函数类型与返回值
函数与其他对象处于同等级别
基本语法:def 方法名(参数列表):结构类型 = (方法体)
函数可以有类型和值得区分
函数类型 =》 函数值
在Scala中不需要依靠return语句来返回一个值,Scala的返回值为方法里最后一个表达式的值。
闭包:函数的执行依赖于声明在函数外部的变量
匿名函数:为正常声明使用
偏应用函数:只保留函数部分参数的函数表达式
Curry化函数:带有多个参数列表且每个参数列表只包含一个参数的函数
匿名函数以及高阶函数
匿名函数:仅仅通过表达式推断返回值和是否是函数。
高级函数:通过抽象各类方法的共同点,编写的函数,起到复用的作用。
Scala词频统计程序
- 编译
- 运行