Scala-语法
变量声明
Scala允许声明变量是可变的还是不可变的
声明不可变变量使用val
声明可变变量使用var
// 声明不可变变量,这里只是array不可再更改,但是数组内容可以更改
val array:Array[String] = new Array(5)
// 可变
var price: Double = 1.1
IF...ELSE
if (BOOL_EXQ_1) {
// CODE SEGMENT
} else if (BOOL_EXQ_2) {
// CODE SEGMENT
} else {
// CODE SEGMENT
}
循环
语法
// 1. while
while(BOOL_EXP) {
// do something
}
// 2. do...while
do {
// do something
} while (BOOL_EXP)
//3. for
//// 循环 Range
for (x <- Range) { // 左箭头 <- 用于为变量 x 赋值
// do something
}
//// 循环 List
for (x <- List) {
// do something
}
实例
// do...while Example
var i :Int = 0
do {
i += 1
} while (i < 10)
// for Example
//// 循环 Range
////// to
for (j <- 1 to 3) { // to; 不用声明j
println(i)
}
////// until
for (j <- 1 until 3) { // to; 不用声明j
println(i)
}
////// 使用占位符(_)
for (_ <- 1 until 3) { // to; 不用声明j
println(i)
}
//// 循环 List
for (x <- List(1, 3, 4 ,5 ,6)) {
println(x)
}
多重循环
for (i <- 1 to 2; j <- 3 to 4; k <- List("Hi", "Hello")) {
println("i:" + i + "\tj:" + j + "\tmessage:" + k)
}
// 输出
i:1 j:3 message:Hi
i:1 j:3 message:Hello
i:1 j:4 message:Hi
i:1 j:4 message:Hello
i:2 j:3 message:Hi
i:2 j:3 message:Hello
i:2 j:4 message:Hi
i:2 j:4 message:Hello
循环过滤
// 循环过滤
for (x <- List if BOOL_EXP_1; if BOOL_EXP_2) {
// do something
}
// Example 1
for (i <- 1 to 10 if i % 2 == 0) {
println(i)
}
// Example 1 Output
2
4
6
8
10
// Example 2
for (i <- 1 to 10 if i % 2 == 0 && i != 4) {
println(i)
}
// Example 2 Output
2
6
8
10
// Example 3
for (i <- 1 to 10 if i % 2 == 0; if i >= 6) {
println(i)
}
// Example 3 Output
6
8
10
// Example 4
for (i <- 1 to 10; j <- 1 to 10; k <- List("Hi", "Hello") if i%2==0; if i>4; if i<10; if j<4 && j%2==1) {
println("i:" + i + "\tj:" + j + "\tmessage:" + k)
}
// Example 4 Output
i:6 j:1 message:Hi
i:6 j:1 message:Hello
i:6 j:3 message:Hi
i:6 j:3 message:Hello
i:8 j:1 message:Hi
i:8 j:1 message:Hello
i:8 j:3 message:Hi
i:8 j:3 message:Hello
使用yield
// Example
//// 定义
val forYield = for { x <- 1 to 10 if x % 2 == 0 } yield x
//// 使用
println(forYield)
println("length:" + forYield.length)
for (a <- forYield) {
println(a)
}
//// 输出
Vector(2, 4, 6, 8, 10)
length:5
2
4
6
8
10
最后更新于
这有帮助吗?