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(安卓)筆記-Linux Kernel SMP (Symmetric Multi-Processo
  2. Android(安卓)TextToSpeech语音播放文本
  3. [cocos2d-x 学习] Scene(场景)学习
  4. Android学习--Android带删除按钮的ListView
  5. android:Handler开启线程定时循环
  6. 说说在 Android(安卓)如何在全局获取 Context
  7. Android中添加布局和初始化布局总结
  8. ActivityGroup + ViewPager 实现可滑动的底部Tab
  9. Android初始化语言 (init.*.rc、init.conf文件格式)

随机推荐

  1. android中自己写的日志类
  2. Flutter之Android(安卓)Studio环境配置采
  3. androidにはOpenGLを勉強する
  4. Android(安卓)Retrofit和Rxandroid的使用
  5. android之View的启动过程
  6. android 游戏 实战打飞机游戏 BOSS的设计
  7. Android(安卓)-- Property Animation
  8. Android之奔溃提示com.google.gson.inter
  9. Python-uiautomator使用说明文档
  10. Android加载webview 弹出错误