Scala简介
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。
Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库。
scala特性
面向对象特性
Scala 是一种高度表达性的编程语言,它结合了面向对象编程和函数式编程的最佳特性。
- 类和对象
- 继承和多态
- 抽象类和特质
- 封装
函数式编程
- 高阶函数
- 不可变性
- 模式匹配
- 闭包
类型系统
静态类型:
Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。
类型系统具体支持以下特性:
- 泛型类·
- 协变和逆变
- 标注
- 类型参数的上下限约束
- 把类别和抽象类型作为对象成员
- 复合类型
- 引用自己时显式指定类型
- 视图·多态方法
类型推断:强大的类型推断机制,可以减少代码中的类型声明,提高代码的可读性。
泛型编程:支持泛型,允许编写更加通用和可复用的代码。类型系统扩展:包括协变(covariance)和逆变(contravariance)、特质(traits)混入等。
扩展性
Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:
- 任何方法可用作前缀或后缀操作符
- 可以根据预期类型自动构造闭包
并发性
Akka 框架: 基于 Actor 模型,用于构建并发、分布式和容错的应用程序。
·Futures 和 Promises: 提供异步编程的抽象,简化并发任务的管理。
·Scala 并发集合: 提供线程安全的数据结构,方便并发编程。
强大的标准库
集合框架: 提供丰富的不可变和可变集合类
字符串处理: 提供强大的字符串操作和正则表达式支持。
IO操作: 支持文件和网络IO操作
与 Java 互操作性
可以直接调用 Java 代码,并且可以在 Java 中调用 Scala 代码,使用 Java 的标准库和框架
模块化和可扩展性
特质(Traits): 可以混入类中,提供类似多重继承的功能,增强代码复用性。
隐式转换和参数: 支持隐式转换和隐式参数,增强代码的灵活性和可扩展性。
Scala语言特点
优雅、速度快、融合hadoop
Scala基础语法
区分大小写
类名:第一个字母大写
方法名称:第一个字母小写
程序文件名:程序文件的名称应该与对象名称完全匹配
标识符
可以使用两种形式的标志符,字符数字和符号。字符数字使用字母或是下划线开头,后面可以接字母或是数字,不能使用关键字作为标识符。
关键字
注释
支持单行注释和多行注释(可以注释)
单行注释:
//
对行注释:
/*
*
*
*/
空行和空格
一行中只有空格或者带有注释,Scala 会认为其是空行,会忽略它。标记可以被空格或者注释来分割。
换行符
Scala是面向行的语言,语句可以用分号(;)结束或换行符。
Scala 包
Scala 使用 package 关键字定义包
Scala 使用 import 关键字定义包