- 增强for循环
for(it in list )
println(it)
2. 数据类
data class Stu(var name : String)
数据类可以只有属性,在字节码底层会生成get 和set 方法
3. 可空属性
对于kotlin 类中的属性是强初始化的,否则可以用可空属性标识
eg: var address : String? = null
4. 集合遍历
for (i in array.indices) {}
for ((index ,value ) in array.withIndex()) {}
for (i in maps.keys) {}
for (i in maps.values) {}
for ((key ,value) in maps) {}
5. when 关键字
var result = when(a) {
1 -> {
10
}
3, 4 ,5 -> {
45
}
in 6..10 -> {
345
}
else -> 10
}
6. Range 区间
var a : Int = 10;
if (a in 2 ..49) {}
for (i in 2.rangeTo(10)) {
println("range to 10")
}
for (i in 2 .. 20 step 3 ) {}
for (i in 20 downTo 2 step 10) {}
7. 面向对象
1. class 默认是final的,父类用open修饰,标识可继承
2. 方法和属性扩展
class Person
fun Person.value():String {
return "hello word"
}
var Person.fullName : String
set(value) { fullName = value}
get() {return fullName }
8. 对象表达式
可以替代大量的匿名实现类
var obj = object : interface1, interface2 {}
对象表达式可以添加方法和属性
9. kotlin 中的枚举
enum class Color constructor(var va : String) {
READ("red"), BLUE("blue") ;
}
enum class Demo11 {
session1 {
override fun get(): String {
return "hello "
}
};
abstract fun get() : String
}