Kotlin常用内容(备忘)

介绍

本文是为了kotlin常用的内容备忘,属于笔记性质,不会有太多讲解,适合kotlin初学者遗忘后帮助快速想起。会不定时更新。

循环

为了方便每行只是打一个log。

until不带右侧边界

object KotLinDemo {
    //常用循环
    fun cycle() {
        //普通循环
        for (i in 1..10) {Log.d("asdasdasd","i in 1..10 "+i.toString())}
        for (i in 1 until 9 step 2) {Log.d("asdasdasd","i until 9 step 2 "+i.toString())}
        for (i in 1 until 3) {Log.d("asdasdasd","i until 3 "+i.toString())}
        for (i in 10 downTo 3 step 1) { Log.d("asdasdasd","i downTo 3 "+i.toString()) }
        //迭代字符串,返回Char
        for (i in "qwe") { Log.d("asdasdasd","i in qwe "+i) }
        //普通while循环
        //while (3 < 10) {}
        //list迭代
        val alist = listOf<String>("a", "s", "d")
        //带下标
        for ((index,value) in alist.withIndex()) { Log.d("asdasdasd",index.toString()+"  "+value) }
        //不带下标
        for (i in alist) { Log.d("asdasdasd","i in alist "+i); }
        //map迭代
        val amap = mapOf(1 to 3, 4 to 2)
        for ((key, value) in amap) { Log.d("asdasdasd","map "+key.toString()+" "+value.toString()) }
    }
}

when结构

    fun aboutWhen() {
        val a = 2
        //替换if
        when {
            a !is Int -> Log.d("asd", "a不是int")
            2 is Int -> Log.d("asd","2是int")
            else -> Log.d("asd", "其他情况")
        }
        //替代switch
        when (a) {
            1 -> Log.d("asd", "a等于1")
            2 -> Log.d("asd", "a等于2")
        }
        
        when (a) {
            1, 2, 3 -> Log.d("asd", "a是1 2 3其中一个")
        }
        
        //作为返回值 b = 3
        val b = when (a) {
            2 -> 3
            else -> 0
        }
        
        //多值 setof不考虑顺序
        when (setOf(a, b)) {
            setOf(3, 2) -> Log.d("asd", "此行代码会运行,因为a=2,b=3")
        }
        
        //when可以是任何对象
        val aDate = Date()
        when (aDate) {
            Date(2L) -> Log.d("asd", "")
            else -> Log.d("asd","")
        }
    }

Lambda语法

	1. 无参数的情况 :
    val/var 变量名 = { 操作的代码 }

    2. 有参数的情况
    val/var 变量名 : (参数的类型,参数类型,...) -> 返回值类型 = {参数1,参数2,... -> 操作参数的代码 }

    可等价于
    // 此种写法:即表达式的返回值类型会根据操作的代码自推导出来。
    val/var 变量名 = { 参数1 : 类型,参数2 : 类型, ... -> 操作参数的代码 }

    3. lambda表达式作为函数中的参数的时候,这里举一个例子:
    fun test(a : Int, 参数名 : (参数1 : 类型,参数2 : 类型, ... ) -> 表达式返回类型){
        ...
    }
发布了28 篇原创文章 · 获赞 49 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qwe25878/article/details/89682994