Kotlin 知识简要

  1. 增强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
}