Scala
说明:本文章适用于有 java 基础者
一、数据类型
1.1 Scala 数据类型
整数类型(byte\short\int\long)、浮点类型(float\double)、字节类型(char)、布尔类型(boolean)、 Unit 类型、Null 类型和 Nothing 类型
Scala中一切数据都是对象,都是Any的子类;
Scala中数据类型分为两大类:数值类型(AnyVal)、引用类型(AnyRef),不管是值类型还是引用类型都是 对象;
Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换;
Scala 中的 StringOps 是对 Java 中的 String 增强;
Unit:对应Java中的void,用于方法返回值的位置,表示方法没有返回值。Unit是 一个数据类型,只有一个象就是()。Void不是数据类型,只是一个关键字;
Null:一个类型,只有一个对象就是null。它是所有引用类型(AnyRef)的子类;
Nothing:所有数据类型的子类,主要用在一个函数没有明确返回值时使用,因为这样我们可以把抛出的返回值,返回给任何的变量或者函数。
类型 | 描述 |
---|---|
Unit | 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成() |
Null | null 或空引用,可以赋值给任意引用类型,但是不能赋值给值类型 |
Nothing | Nothing类型在Scala的类层级的最底端;它是任何其他类型的子类型 |
Any | Any是所有其他类的超类 |
AnyRef | AnyRef类是Scala里所有引用类(reference class)的基类 |
二、运算符
2.1 Java 和 Scala 中关于 == 的区别
java:== 比较两个变量本身的值,即两个对象在内存中的首地址;equals 比较字符串中所包含的内容是否相 同;
scala:== 更加偏向于 java 中的 equals 。
2. 2 赋值运算符
scala 中没有 ++ 与 – ,可通过 += 、-= 来实现相同的效果。
2.3 scala 运算符的本质
在 scala 中所有运算符都是方法。
1)当调用对象的方式时,点可以省略;
2)如果函数参数只有一个,或者没有参数,()可以省略
object HelloWorld { def main(args: Array[String]): Unit = { var a : Int = 1 .+ (1) var b : Int = 1 + (1) var c : Int = 1 + 1 println(a + "+" + b + "+" + c) } }
结果为:2+2+2
三、流程控制
3.1 分支控制
单分支、双分支、多分支(if-else);
if 嵌套分支;
3.2 Switch 分支结构
与 Java 语法相同
3.3 For 循环控制
1)前闭后闭
for(i <- 1 to 3) {
print(i + " ")
} // i将会从1-3循环
2)前闭后开
for(i <- 1 until 3) {
print(i + " ")
} // i将会从1-2循环
3)循环守卫
for(i <- 1 to 3 if i != 2) {
print(i + " ")
} // 相当于添加判断条件
4)循环步长
for(i <- 1 to 3 by 2) {
print(i + " ")
} // 间隔2步循环一次
5)嵌套循环
for(i <- 1 to 3; j <- 1 to 3) {
print("i=" + i + ";j=" + j)
}
6)倒序打印
for(i <- 1 to 3 reverse) {
print(i + " ")
} // 将1-3倒序打印输出
3.3 While 和 do While 循环控制
与 Java 语法相同
收藏一下!持续更新中。。。
上一篇:Scala 入门