Kotlin(八)

来源:互联网 发布:中控矩阵系统 编辑:程序博客网 时间:2024/04/25 14:05

数据类

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

package com.zhoujian.kotlindemoimport 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=阳光明媚}
原创粉丝点击