Kotlin学习之解构声明

data class MyResult(val result: String, val status: Int)

fun myMethod(): MyResult {
    return MyResult("Success", 1)
}

 常规的使用方法

 override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main21)
        val myResult = myMethod()
        myResult.result
        myResult.status
    }

使用解构声明

      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main21)
        val (result, status) = myMethod()
        println(result)
        println(status)
    }

解构声明在map中的具体使用

   val map = mapOf<String, String>("a" to "aa", "b" to "bb", "c" to "cc")
        for ((key, value) in map) {
            println("key:$key,value:$value")
        }
map.mapValues { entry -> "${entry.value} hello" }.forEach { println(it) }

 map.mapValues { (key, value) -> "$value world" }.forEach { println(it) }

 没有用到key,可以用下划线表示

map.mapValues { (_, value) -> "$value welcome" }.forEach { println(it) }

 Kotlin允许我们为解构声明整体指定好类型,也可以为每一个具体的component指定类型

map.mapValues { (_,value):Map.Entry<String,String> -> "$value person" }.forEach { println(it) }

 为每一个具体的component指定类型

 map.mapValues { (_, value: String) -> "$value person" }.forEach { println(it) }

 

猜你喜欢

转载自blog.csdn.net/jingerlovexiaojie/article/details/107726018
今日推荐