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中的 <? super xClass>
· 相当于java中的 <? extend xClass>

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

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

更多相关文章

  1. Android 图片对比(图片相似度)代码
  2. android 代码优化:关闭输出日志
  3. 《Android系统源代码情景分析》连载回忆录:灵感之源
  4. 在Ubuntu上下载、编译和安装Android最新源代码
  5. Android系统源代码情景分析 第3版

随机推荐

  1. Android手机软件汉化教程---第五课 打包
  2. android 2.0发布
  3. 经典Android(安卓)人脸识别案例解析
  4. Android游戏开发一些心得(多个SurfaceView
  5. Android-下拉列表框Spinner的使用
  6. Android轻松搭建MVVM + Retrofit + RxJav
  7. 如何从oat文件中提取内嵌的dex文件
  8. 谷歌Java专利案面临败北:Android居然要考
  9. Android(安卓)NDK开发: 通过C/C++调用第
  10. android开发入门网站和书籍推荐