10.数据类

2020-07-28  本文已影响0人  学吉他的袁先生

1.对应java中的javabean,主动生成hashcode,toString,copy等方法
2.主构造器里面有多少个成员属性,就会生成多少个component方法

data class Country(val id: Int, val name: String)

fun main() {
    val china = Country(0, "中国")
    println(china.id)
    println(china.name)
    println(china.component1())
    println(china.component2())
}

还可以这样子创建对象

val (id, name) = Country(0, "中国")
println(id)
println(name)

下面的集合的遍历,就是这样子写法

for ((index,value) in args.withIndex()){
    println(index)
    println(value)
}

args.withIndex()的源码

public fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>> {
    return IndexingIterable { iterator() }
}

IndexedValue源码

//Kotlin 中可以声明泛型类型是协变还是逆变的. out 修饰类型参数是协变的, in 修饰的类型参数支持逆变.
public data class IndexedValue<out T>(public val index: Int, public val value: T)
上一篇下一篇

猜你喜欢

热点阅读