Scala是什么?
Scala的预期目标是将面向对象、函数式编程和强大的类型系统结合起来,同时让人要能写出优雅、简洁代码。
scala采用了java语言的大部分语法,表达式、语句、和代码块和Java一样,还有类、包和引用的语法
Scala的语言特点?
1. 面向对象的语言
2. 面向函数式编程的语言
3. 静态的语言
4. 扩展性良好
5. 支持Actor并发模型(多线程)
scala编程语言的规范?
4. scala的语法缩进要使用空格、不要使用tab键
7. 空行的目的,用于逻辑分组。比如 方法和成员变量之间应该多一个空行
scala的类型体系?

1. scala的超类(父类,基类)是Any
2. Any下有两个直接子类型,分别是AnyVal 和AnyRef
3. AnyVal有一些基本类型:
Byte-->Short-->Int-->Long-->Float-->Double
Char
boolean
Unit
StringOps
4. AnyRef包括了java的所有引用类型、Scala的所有集合类型、以及Scala的其他引用类型,以及Null类型
5. Nothing是Scala的所有其他类型的子类型,位于类型层次的最底层
6. Null类型只有一个实例值是null
scala> val a = ()
a: Unit = ()
7. Unit和java的void相似,是一种类型,也只有一个实例()
scala> val a = null
a: Null = null
Scala计算遵守原则?
1. 不同的数值类型计算时,需要转为同一种类型进行计算
2. 如果是小于Int类型的两种类型计算、都转为Int类型计算
3. 如果是其他情况的两种不同类型,那么就会转为较大类型的数据进行计算
Sacala的String类型?
1. Scala的String的本质就是java的String
“zhangsan”.getClass.toString
2. 赋值使用双引号
3. 也可以使用三引号,进行换行赋值
var name = """
|zhangsan
|lisi
|"""
Sacala的Option类型?
用来表示一个值是可选的,实际上就是有值和无值两种。
有值的话,是Some(value)
无值的话,就是None
总之:Option类型就两个值:Some(value)、None
Scala的常用运算符?(较难理解)
4. 短路逻辑运算符: 一般用于连接多个关系表达式的,结果也是true、false
&& : 一假则假,全真为真
|| : 一真则真, 全假为假
! : 非真即假,非假即真
短路逻辑: 当前面的条件可以确定结果后,后面的条件不再执行
5. 位运算符 : 1为 真 0为假
& : 与 口诀: 一0则0,全1为1
| : 或 口诀: 有1则1,全0为0
^ : 异或 口诀: 相同为0,不同为1
>> : 有符号右移, 原来是正,结果就是正,原来是负,结果就是负数
<< :有符号左移, 原来是正,结果就是正,原来是负,结果就是负数
有符号移动时,正数高位补0,负数高位补1
>>>:无符号右移: 表示所有二进制位上的数向右移动,高位补0
** Scala的表达式的概念(重要)?
在scala中,只要是一句完整的代码,就是一个表达式,或者使一个语句块,或者使一个结构体,比如分支结构,循环结构,抛出异常对象,都是表达式。只要是表达式,那么一定有返回值
Scala的循环结构有哪些?
-- while : 条件成立时,才会执行循环体
-- do-while :先执行一次循环体,再判断条件是否成立
-- for循环:
for循环结构的写法?
小贴士: java中的for循环结构有两种写法
一种是经典for循环写法 :
for(循环因子的声明和初始化;循环条件;向着循环结束的方向变化的表达式){}
一种是增强for循环写法
for(类型名 变量名:集合|数组){}
注意:scala里的for循环,相当于java中的增强for循环写法
for( 变量名 <- 集合|数组|Range|表达式 ){
循环体
}