Kotlin(八) - 数据类

xiaoxiao2021-02-28  23

数据类

数据类是一种非常强大的类,定义一个新的数据类非常简单:

package com.zhoujian.kotlindemo import java.util.* /** * Created by zhoujian on 2017/5/24. */ data class Forecast(val date: Date, val tem: Float,val detais: String) { }

额外的函数

通过数据类,我们可以方便地得到很多有趣的函数

equals(): 它可以比较两个对象的属性来确保他们是相同的。hashCode(): 我们可以得到一个hash值,也是从属性中计算出来的。copy(): 你可以拷贝一个对象,可以根据你的需要去修改里面的属性。

复制一个数据

举个例子,如果我们需要修改Forecast中的temperature(温度),我们可以这么做:

val f1 = Forecast(Date(),22f,"阳光明媚") val f2 = f1.copy(tem = 25f) Log.i("MainActivity",f1.toString()) Log.i("MainActivity",f2.toString()) Forecast(date=Thu May 25 01:21:40 EDT 2017, tem=22.0, detais=阳光明媚) 05-25 01:21:41.097 1870-1870/? I/MainActivity: Forecast(date=Thu May 25 01:21:40 EDT 2017, tem=25.0, detais=阳光明媚)

映射对象到变量中

val f1 = Forecast(Date(),22f,"阳光明媚") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val(date,tem,detais) = f1 val d = f1.component1() val t = f1.component2() val det = f1.component3() Log.i("MainActivity","d=$d,t=$t,det=$det") //d=Thu May 25 02:33:20 EDT 2017,t=22.0,det=阳光明媚 }
转载请注明原文地址: https://www.6miu.com/read-750023.html

最新回复(0)