区间(Range)
区间是一个数学上的概念,表示范围
区间的声明
Kotlin 中可以使用 ..
或 until
来声明区间:
i in 1 until 4 // 1 <= i< 4
i in 1..4 // 1 <= i<= 4
这里的 ..
操作符对应的是 Int
类中的一个 rangeTo()
方法
下面为来定义几种不同的区间:
- 闭区间
var range = 1 .. 5
for ( i in range){
print("$i ")
} // 输出 1 2 3 4 5
- 半闭区间
var range = 1 until 5
for ( i in range){
print("$i ") // 输出 1 2 3 4
}
- 倒序区间
var range = 5 downTo 1
for ( i in range){
print("$i ")
} // 输出 5 4 3 2 1
-
自定义步长的区间
也可以通过任意步长(不一定为 1 )迭代数字。 这是通过
step
函数完成的
var range = 1..5 step 2
for (i in range){
print("$i ") // 输出 1 3 5
}
- 反转序列
// 先定义一个 1 到 5 到区间
var range = 1 .. 5
// 对这个区间调用 `reversed()`
var range2 = range.reversed()
for ( i in range2){
print("$i ") // 输出 5 4 3 2 1
}
对区间的操作:
fun main() {
val number = 2
println(number !in 1..3)//输出 false
println(number in 1..3)//输出 true
}
这里可以看到我们为什么称呼range为表达式,表达式是有值的,所以我们可以直接使用range表达式的值.
when 的基本使用方法
kotlin 中的 when 的基本使用方法与 Java 中的 switch 类似。
public class test {
public static void main(String[] args) {
int number = 2;
switch (number) {
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
default:
System.out.println("other");
break;
}
}
}
java和kotlin中的对比:
fun main() {
val number = 2
when (number){
1-> println("one")
2-> println("two")
3-> println("three")
else-> println("other")
}
}
功能更加强大的地方:
-
多个分支拥有相同的处理时可以放在一起。
when(x){ 1->print("x is 1") 2,3->print("x is 2 or 3") else->print("else") }
-
可以用来代替 if-else 链。
when{ 3>2->print("3>2 is true") 4>3->print("4>3 is true") 5>6->print("5>6 is true") }