- val(value的简写)用来声明一个不可变的变量,这种变量在初始赋值之后就再也不能重新赋
值,对应Java中的final变量。
- var(variable的简写)用来声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新
赋值,对应Java中的非final变量。
- var range = 0..10 表示的是[0,10]的闭区间
- Kotlin中可以使用until关键字来创建一个左闭右开的区间,如:val i = 0 until 10 表示 [0,10),而如果你想设置循环的步长,可以使用step关键字: for(i in 0 until 10 step 2)
- 前面的..和until关键字都要求区间的左端必须小于等于区间的右端,也就
是这两种关键字创建的都是一个升序的区间。
- 如果你想创建一个降序的区间,可以使用downTo关键字,用法: for(i in 10 downTo 1)
- 在Kotlin中任何一个非抽象类默认都是不可以被继承的,相当于Java中给类声明了final
关键字。open关键字开放类可以被继承
- Kotlin规定,当一个类既有主构造函数又有次构造函数时,所有的次构造函数都必须调用主构造
函数(包括间接调用)。
- 当在一个类前面声明了data关键字时,就表明你希望这个类是一个数据类,Kotlin会根据主构造函数中的参数帮你将equals()、hashCode()、toString()等固定且无实际逻辑意义的方法自动生成,从而大大减少了开发的工作量。
- 在Kotlin中创建一个单例类的方式极其简单,只需要将class关键字改成object关键字即可
- listOf()函数来简化初始化集合的写法 :val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")。注意⚠️:listOf()函数创建的是一个不可变的集合。你也许不太能理解什么叫作不
可变的集合,因为在Java中这个概念不太常见。不可变的集合指的就是该集合只能用于读取,
我们无法对集合进行添加、修改或删除操作。
- 使用mutableListOf()函数创建可变的集合:
val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")
list.add("Watermelon")
- Set集合和List集合用法一样:setOf不可变set集合,mutableSefOf()可变Set集合
- 在Kotlin中并不建议使用put()和get()方法来对Map进行添加和读取数据操作,而是更加推荐使用一种类似于数组下标的语法结构,比如向Map中添加一条数据就可以这么写:
val map = HashMap<String, Int>()
map["Apple"] = 1
val number = map["Apple"]
- mapOf()和mutableMapOf()可以创建相应的map集合:
val map = mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3, "Pear" to 4, "Grape" to 5)
for ((fruit, number) in map) {
println("fruit is " + fruit + ", number is " + number)
}
- any函数用于判断集合中是否至少存在一个元素满足指定条件,all函数用于判断集合中是否所有元素都满足指定条件。