美文网首页Kotlin学习
Kotlin Basic Learning - series 1

Kotlin Basic Learning - series 1

作者: swust_cp | 来源:发表于2018-04-17 19:38 被阅读10次

最近从网上看到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

相关文章

网友评论

    本文标题:Kotlin Basic Learning - series 1

    本文链接:https://www.haomeiwen.com/subject/isbpkftx.html