当前位置: 首页 > news >正文

网站制作时间代码深圳网站建设的公司

网站制作时间代码,深圳网站建设的公司,wordpress最详细的教程视频教程,cms做门户网站data class 介绍 kotlin 中 data class 是一种持有数据的特殊类 编译器自动从主构造函数中声明的所有属性导出以下成员: .equals()/.hashCode() 对 .toString() 格式是 "User(nameJohn, age42)" .componentN() 函数 按声明顺序对应于所有属性。…

data class 介绍

kotlin 中 data class 是一种持有数据的特殊类

编译器自动从主构造函数中声明的所有属性导出以下成员:

    .equals()/.hashCode() 对
    .toString() 格式是 "User(name=John, age=42)"
    .componentN() 函数 按声明顺序对应于所有属性。
    .copy() 函数

为了确保生成的代码的一致性以及有意义的行为,数据类必须满足以下要求:

    主构造函数需要至少有一个参数。
    主构造函数的所有参数需要标记为 val 或 var。
    数据类不能是抽象、开放、密封或者内部的。

val 声明的参数类似java的final  ,data clas 里面不会有 set方法

var 声明的参数data clas 里面有 set方法

data clas 的使用

data class Person(val name: String, val age: Int)class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.main_layout)val person = Person("张三丰", 122)Log.d("======person", "姓名=${person.name},年龄=${person.age}")}
}

componentN() 函数介绍

data class主构造函数中的每个属性,Kotlin会根据构造函数的个数生成相应的componentN()函数,且有几个参数会生成几个componentN()函数

data class Person(val name: String, val age: Int)class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.main_layout)
//        val person = Person("张三丰", 122)
//        Log.d("======person", "姓名=${person.name},年龄=${person.age}")val person = Person("张三丰", 122)val (name, age) = person // 使用componentN()函数解构赋值Log.d("======person","$name is $age years old")}
}

copy 介绍

copy() 方法: copy()方法是data class提供的一个内置工具,用于创建现有实例的一个副本,并允许你修改部分属性值

data class Person(val name: String, val age: Int)class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.main_layout)
//        val person = Person("张三丰", 122)
//        Log.d("======person", "姓名=${person.name},年龄=${person.age}")//        val person = Person("张三丰", 122)
//        val (name, age) = person // 使用componentN()函数解构赋值
//        Log.d("======person","$name is $age years old")val person1 = Person("Alice", 30)// 创建person1的一个副本,并更改年龄val person2 = person1.copy(age = 31)// person2将拥有与person1相同的name属性,但age属性被更新为了31岁Log.d("======person", "姓名=${person2.name},年龄=${person2.age}")}
}

总体而言copy对于实现不可变设计模式或者需要快速创建基于已有对象的衍生版本时非常有用

http://www.tj-hxxt.cn/news/15214.html

相关文章:

  • 瑞安做网站多少钱seo推广软
  • 手机网页开发模板佛山做seo推广公司
  • 企业网站建设方案书目录免费网站的平台
  • 在线做图表的网站爱站网关键词长尾挖掘工具
  • 秦皇岛做网站的公司站长工具seo综合查询推广
  • 自己怎么用h5做网站环球网广东疫情最新消息
  • 做博客网站赚钱吗手机百度app下载安装
  • 做网站可以参考的网站宁波网站推广平台效果好
  • 安装wordpress插件关键词优化推广排名多少钱
  • 辽宁沈阳疫情最新消息邯郸seo
  • 网站建设需要实现哪些目标沈阳seo按天计费
  • 宿州企业网站推广windows优化工具
  • 怎么在工商局网站做股东变更长沙有实力的关键词优化价格
  • 网上做问卷调查赚钱哪些网站好西安关键词排名软件
  • 做网站准备什么问题免费发广告的软件
  • 电子商务网站建设报告国际新闻
  • 丰台企业网站建设脚本外链平台
  • 风景网页制作模板淘宝怎么优化关键词步骤
  • 青白江建设局网站鹤壁网络推广哪家好
  • 专业做网站公司 前景长沙百度提升排名
  • 济南专业做公司网站的机构网站百度百科
  • 家居网站建设公司排名网站建设的意义和作用
  • 重庆网站公司设计aso优化方案
  • 网站建设过程中的需求分析湖南做网站的公司
  • 网站建设合同验收百度经验实用生活指南
  • 大型企业网站建设日本今日新闻头条
  • 不是用于制作网页的软件网站关键词排名seo
  • 微信微网站模板下载百度后台推广登录
  • 自己做网站seo优化谷歌seo 优化
  • 优惠券网站怎么搭建便宜的seo网络营销推广