基本语法
原创大约 2 分钟
变量
Scala 2中的变量分两种:可变var
和不可变val
。
val
相当于Java中加了final
修饰符的变量,第一次赋值后就不能再改变。
给变量指定类型是通过[: 类型名称]实现的。
// 定义一个整型变量c
scala> val c = 1
c: Int = 1
// 另一种定义整型变量的方法
scala> val c: Int = 1
c: Int = 1
数据类型
基本数据类型
:Byte
、Char
、Short
、Int
、Long
、Float
、Double
和Boolean
。增强数据类型
:StringOps
、RichInt
、RichDouble
、RichChar
等。
增强数据类型
提供了大量的方法用于数据类型的各种操作和转换。
// 下面两个方法等价
scala> 1.to(5)
res0: scala.collection.immutable.Range.Inclusive = Range 1 to 5
scala> 1 to 5
res1: scala.collection.immutable.Range.Inclusive = Range 1 to 5
// 数值转换为字符串
scala> 10.toString
res2: String = 10
if表达式
Scala 2的if
表达式是有返回值的,就是它里面最后一行语句返回的值。
scala> val age = 20
age: Int = 20
scala> val res1 = if (age > 18) {
| 1
| } else {
| 0
| }
res1: Int = 1
scala> val res2 = if (age > 18) {
| 1
| } else {
| "young"
| }
res2: Any = 1
// ()类似于null
scala> val res3 = if (age > 18) "old" else ()
res3: Any = old
语句终结符
Scala 2默认是每条语句一行,不需要在代码结尾增加;
。
但当多行代码放在一行中的时候,需要在每条语句的结尾加上;
,这个;
就是所谓的语句终结符
。
scala> val age = 18; if (age > 20) 1 else 0;
age: Int = 18
res0: Int = 0
循环
scala> val m = 10
// 结果是1~10
scala> for (i <- 1 to m) {
| println(i)
| }
1
2
3
4
5
6
7
8
9
10
// 结果是1~9
scala> for (i <- 1 until m) {
| println(i)
| }
1
2
3
4
5
6
7
8
9
scala> for (s <- "hello scala") {
| println(s)
| }
h
e
l
l
o
s
c
a
l
a
scala> var n = 10
n: Int = 10
scala> while (n > 0) {
| println(n)
| n -= 1
| }
10
9
8
7
6
5
4
3
2
1
高级for
循环
// if守卫
scala> for (i <- 1 to 10 if i % 2 == 0) {
| println(i)
| }
2
4
6
8
10
// for推导式
scala> for (i <- 1 to 10) yield i * 2
res0: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
感谢支持
更多内容,请移步《超级个体》。