31DaysOfKotlin-series 1

最近从网上看到Google推送的31天学习Kotlin,觉得还不错,所以特此Mark下

  1. 处理null条件?可以使用elvis operator ‘?:

    val name: String = person.name ?: "unknown"
    val age: person.age ?: return
    

    如果name不为null,返回name,否则返回“unknown”,如果age为null,则整个函数返回。

    另外此处若在不为时有很多的逻辑需要处理,可以考虑使用.let或者.appy

    Read More About Null Safety

  2. 格式化String?可以在variables和experssions前面添加’$‘即可。对experssions求值时,使用’${experssion}’

    val language = "Kotlin"
    
    // Kotlin has 6 characters
    val text = "$language has ${language.length} characters"
    

    Read More About Kotlin Basic Types

  3. Android KTX在Android开发时,实现类似Kotlin自带的解构(destructuring)操作。

    // 对应的值分别是255,255,0,0,变量名可以任意命名,但是顺序分别对应是a,r,g,b
    val (alpha, red, green, blue) = Color.RED
    
    // 只取前面两个值
    val (left, top) = Rect(1, 2, 3, 4)
    
    val (x, y) = Point(100, 200)
    
    // Not from KTZ
    val (name, age) = Person("Peng", 8)
    

    Destructuring Declarations - Kotlin Programming Languagekotlinlang.org

  4. Kotlin使用’when’表达式代替Java中的switch语句,when可以match很多东西,如literal values,enums,ranges of numbers,你甚至可以调用arbitrary functions

    class Train(val cargo: Number?) {
        override fun toString(): String {
            return when(cargo) {
                null, 0 -> "empty"
                1 -> "tiny"
                in 2..100 -> "small"
                is Int -> "big int"
                else -> "$cargo"
            }
        }
    }
    

    Control Flow: if, when, for, while - Kotlin Programming Languagekotlinlang.org

  5. 对于loops,在Kotlin中经常使用range experssions和destructuring

    //循环从1到100
    for (i in 1..100) {}
    
    //循环从100到1
    for (i in 100 downTo 1) {}
    
    //循环从1到array.size,不包含until后面的数[1,array.size),每隔一个
    val array = arrayOf("a", "b", "x")
    for (i in 1 until array.size step 2){}
    
    //destructuring an array with index and element
    for ((index, element) in array.withIndex()){}
    
    //map的循环
    val map = mapOf(1 to "one", 2 to "two")
    for ((key, value) in map){}
    

    Destructuring Declarations - Kotlin Programming Languagekotlinlang.org

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值