# 1. 区间
这里的用法有点类似于在`Python`中的`range`这个函数的用法。在`Kotlin`中提供了`rangeTo`方式,比如下面的案例:
~~~
fun main() {
val name = "天下张"
for(i in 0.rangeTo(name.length - 1)){
print(name.get(i))
}
}
~~~
但是很明显,这种方式并不好用。还提供了另一种更加简单的写法:
~~~
fun main() {
val name = "天下张"
for(i in 0..(name.length - 1)){ // 使用两个点
print(name.get(i))
}
}
~~~
从上面的案例中我们值得注意一点,就是这里的`int.rangeTo(other)`这种方式左右均为闭区间。
注意到上面的增长方式为`+1`操作,在`kotlin`中提供了设置步长的方式:
~~~
for(i in 1..6 step 2){
println(i)
}
~~~
结果为:
```
1
3
5
```
## 1.1 逆向区间
有些时候需要从大大小,在`kotlin`中提供了逆向区间的方式:
~~~
fun main() {
val name = "天下张"
for(i in 4.downTo(0)){
println(i)
}
}
~~~
结果为:
```
4
3
2
1
0
```
从这里我们也可以知道在`downTo`方法中也是左右两个闭区间。
- Kotlin语言基础
- Kotlin的简介
- Kotlin的变量和常见数据类型
- Kotlin的区间
- Kotlin的位运算
- Kotlin的容器
- Kotlin类型检查
- Kotlin的空值处理
- Kotlin的函数
- Kotlin的类
- Kotlin的委托
- Kotlin的延迟加载
- Kotlin的异常
- Kotlin的Lambda表达式
- Kotlin的高阶函数
- Kotlin的标准库中的高阶函数
- Kotlin的泛型
- Kotlin的表达式
- Kotlin的解构
- Kotlin的运算符重载
- Kotlin语言中级
- Kotlin的扩展函数
- Kotlin的扩展属性
- Kotlin的infix关键字
- Kotlin的DSL
- Kotlin的一些注解(和Java互调用)
- Kotlin的lateinit和by lazy
- Kotlin的反射
- Kotlin的匿名接口
- 安卓中的Kotlin
- 数据库操作Room