kotlin 解构声明

作者: 折剑游侠 | 来源:发表于2020-04-30 09:39 被阅读0次

将对象解构成多个变量,使用起来更加方便。

声明data class

data class Person(var name: String, var age: Int, var gender: String)

使用

        val person = Person("zhangsan", 15, "1")
        val (name, age, gener) = person
        Toast.makeText(this, name, Toast.LENGTH_SHORT).show()

多余变量用不到可以用下划线省略

        val (name, _, _) = person

对于data class,编译器帮忙生成了componentN函数,去掉关键字data,自己实现componentN函数也是一样的。

class Person(var name: String, var age: Int, var gender: String) {
    operator fun component1() = name
    
    operator fun component2() = age
    
    operator fun component3() = gender
}

迭代集合更为方便

        val list = mutableListOf<Person>()
        for (i in 0 until 100){
            list.add(Person("zhangsan", i, "1"))
        }
        for ((name, age, gender) in list){

        }

是不是有点熟悉,Map就是这么迭代的

        val map = mutableMapOf<String, Person>()

        for ((key, value) in map) {

        }

点进key,value看一下

public inline operator fun <K, V> Map.Entry<K, V>.component1(): K = key

public inline operator fun <K, V> Map.Entry<K, V>.component2(): V = value

果不其然Map.Entry添加了两个扩展函数

相关文章

  • 22.Kotlin解构声明详解

    Kotlin解构声明详解 有时把一个对象解构成很多变量会很方便,例如: 这种语法称为解构声明 。一个解构声明同时创...

  • Kotlin 解构声明

    一、什么是解构声明 在 Koltin 中可以把一个对象赋值给多个变量,这种操作叫做解构声明(Destructuri...

  • kotlin 解构声明

    将对象解构成多个变量,使用起来更加方便。 声明data class 使用 多余变量用不到可以用下划线省略 对于da...

  • Kotlin- 解构声明(Destructuring Decla

    (翻译) 解构声明 解构声明是Kotlin中另一个重要的特性。我们可以利用这个特性来编写更好的应用程序。 解构声明...

  • Kotlin-解构声明

    https://blog.csdn.net/IO_Field/article/details/53377547

  • Kotlin的解构声明

    将一个对象解构成多个变量 一、解构声明 解构声明会被编译成如下代码 使用解构声明时,对象需要提供 componen...

  • Kotlin 解构声明 详解

    引言 解构声明是将一个对象 解构成 N 个变量,一个解构声明同时创建多个变量 如何使用解构声明 直接将对象解构为N...

  • Kotlin 解构声明和元组

    一. 解构声明简介 解构声明,可以将一个对象解构成多个变量,像下面这样 一个解构声明同时创建多个变量,并且可以单独...

  • Kotlin与Java:解构声明

    解构声明 在现代语言中常常拥有结构声明用语简化代码,例如JavaScript与Kotlin,但是在Java中却没有...

  • Kotlin中的解构声明

    前言 Kotlin是一种在Java虚拟机上运行的静态类型编程语言,被称之为Android世界的Swift,在Goo...

网友评论

    本文标题:kotlin 解构声明

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