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) }