Kotlin for Android(安卓)- 常用关键字
16lz
2022-08-02
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 - 实战记录<一>
更多相关文章
- Android(安卓)筆記-Linux Kernel SMP (Symmetric Multi-Processo
- Android(安卓)TextToSpeech语音播放文本
- [cocos2d-x 学习] Scene(场景)学习
- Android学习--Android带删除按钮的ListView
- android:Handler开启线程定时循环
- 说说在 Android(安卓)如何在全局获取 Context
- Android中添加布局和初始化布局总结
- ActivityGroup + ViewPager 实现可滑动的底部Tab
- Android初始化语言 (init.*.rc、init.conf文件格式)