0 下载地址: http://www.scala-lang.org/download/
1 概念:
可伸缩的语言是一种多范式的编程语言,一种类似java的编程,设计初衷是要集成面向对象编程和函数式编程的各种特性(来在百度百科,基本没看懂这概念表达个啥出来)
2 特点:
a) 能调用java
b) 面向对象+函数式编程
c) 语法简洁
d)支持并发控制(为spark支持提供保证)
e)静态类型化(多声明常量 少声明变量)
f) 强类型语言,必须定义类型
g) 所有变量都是对象,所有操作都是方法
3 安装: 下载后,双击 scala-2.11.1.msi安装即可,然后将按照后的bin目录配置到机器path变量中
4 安装后验证:
5 语法:
a)数值类型(没有首字母小写,这点要和java区别)
整数值: Byte, Short, Int, Long (和java类型长度一致, 定义Long类型写法: val num = 32L)
浮点型: Double, Float(和java类型长度一致,默认类型为Double,定义Float写法: val num = 1.2F)
布尔: Boolean(true/false)
字符: Char String
b) 声明与赋值
操作 | 操作符 | 案例 | 说明 |
声明常量 | val | val a:Int = 3 val a = 3 类型可省略不写,如果不写,则走的是默认类型 |
val 变量的值只能初始化一次,再次赋值就发生错误, 类似于java中的 staitc final字段
|
声明变量 | var | var msg="hello" | 可以随时修改, 和java变量一样 |
声明函数 | def
def 函数名(参数a:类型,参数b:类型):函数返回值类型={函数体} | 最后的Int表示方法返回值类型
def max(x: Int, y: Int): Int = if(x < y) y else x
| 调用写法:
|
声明类型 | type | | |
声明类 | class | | |
声明对象 | object | | |
c) 操作符
数学操作符 | + - * / % |
比较操作符 | < <= > >= |
逻辑操作符 | && || |
对等操作符 | == != |
位操作符 | & | ^ ~ |
| 形如 +=的操作符重载,会被认为是赋值操作符而具有最低优先级 m*=n +5 等价于 m*=(n+5) 和java一样 |