Kotlin for Android - 常用关键字

kotlin中与java用法一致的关键字包括:override ,while 等

声明

· open 在kotlin一个类需要被另一个类继承的话,需要用到open关键字

open class OpenClass {}

· is 判断类型

    fun testIs() {
        var a: Any? = null;
        a = 3L
        if (a is Int) {
            println("a is int")
        } else if (a is Long) {
            println("a is long")
        } else {
            println("a not int or long")
        }
    }

· when 相当于swith,我们使用when来优化一下上一段代码

    fun testWhen1() {
        var a: Any? = null;
        a = 3L
        when (a) {
            is Int -> println("a is int")
            is Long -> println("a is long")
            else -> println("a not int or long")
        }
    }
    fun testWhen2() {
        var a = 2;
        when (a) {
            in 1..5 -> println("a in 1~5")
            in 6..10 -> println("a in 6~10")
            else -> println("a > 10")
        }
    }

· as 强制类型转换

var Context.app: KotlinApplication
    get() {
        return applicationContext as KotlinApplication
    }
    set(value) {
        app = value
    }

· in 表示在范围内,.. 表示一个范围

    fun testIn() {
        var a = 3
        if (a in 1..5) {
            println("a in 1~5")
        }
    }

· for 基本和java中差不多,以下代码相当于java中的 fori

for (i in list.indices) {
   println(list.get(i))
}

以下代码相当于java中的 foreach

for (item in list) {
   println(item)
}

kotlin中也有foreach,但并非一个关键字,用法如下

list.forEach {
    println(it)
}

· lateinit 字面上就能看出来,用于延迟初始化,当一个var不能为空,但是初始没赋值时,可以用lateinit修饰,如果在第一次使用被lateinit修饰的变量仍然没有值,会抛出异常。lateinit只能用于修饰var,不能修饰val.

lateinit var age:String

· by lazy{} 用于延迟初始化一个val,在第一次使用该常量之前会执行lazy中的初始化代码

val prefs by lazy { context.getSharedPreferences("KotlinLearnDemo", Context.MODE_PRIVATE) }

· internal 被internal修饰的变量或者类,是模块内可见。
. inner 表示内部类
· init{} 相当于java中的自由块

init {
   println("初始化")
}

· inline 定义一个内联函数
· 相当于java中的
· 相当于java中的

本文代码链接:https://github.com/sunflowerseat/KotlinDemo
暂时写这些,之后再补充,文章内容如有错误欢迎指正。
对本文内容有任何疑问欢迎加群讨论:283272067

下一篇:Kotlin for Android - 实战记录<一>

你可能感兴趣的:(Android,Kotlin,Kotlin,for,Android)