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

网站图片宽度宁德seo推广

网站图片宽度,宁德seo推广,做物流网站费用多少,网站怎样做友情链接数据类 数据类主要用于存储数据。 对于每个数据类,编译器会自动生成一些额外的成员函数,这些函数支持将实例打印为易读的输出、比较实例、复制实例等操作。 数据类使用 data 关键字标记: data class User(val name: String, val age: Int…

数据类

数据类主要用于存储数据。

对于每个数据类,编译器会自动生成一些额外的成员函数,这些函数支持将实例打印为易读的输出、比较实例、复制实例等操作。

数据类使用 data 关键字标记:

data class User(val name: String, val age: Int)

编译器会根据主构造函数中声明的所有属性,自动派生以下成员:

  • equals() / hashCode() 对。

  • 格式为 User(name=John, age=42)toString() 函数。

  • 与属性声明顺序相对应的 componentN() 函数。

  • copy() 函数(详见下文)。

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

  • 主构造函数必须至少有一个参数。

  • 主构造函数的所有参数都必须标记为 valvar

  • 数据类不能是 abstract(抽象的)、open(开放的)、sealed(密封的)或 inner(内部的)。

此外,关于数据类成员的继承,其生成遵循以下规则:

  • 如果数据类主体中有 equals()hashCode()toString() 的显式实现,或者超类中有这些函数的 final 实现,那么不会生成这些函数,而是使用现有的实现。

  • 如果超类型有 open(开放的)且返回兼容类型的 componentN() 函数,那么会为数据类生成相应的函数,并覆盖超类型的这些函数。如果由于签名不兼容或超类型的函数是 final 而无法覆盖,将会报错。

  • 不允许为 componentN()copy() 函数提供显式实现。

数据类可以继承其他类。

open class Person(val name: String) {open fun introduce() {println("My name is $name.")}
}// 定义一个继承自 Person 的数据类。
data class Employee(val id: Int, val name2: String, val department: String) : Person(name2) {override fun introduce() {super.introduce()println("I'm an employee with ID $id, working in the $department department.")}
}fun main() {// 创建 Employee 数据类的实例。val employee = Employee(1, "John", "IT")// My name is John.// I'm an employee with ID 1, working in the IT department.employee.introduce()println(employee) // Employee(id=1, name2=John, department=IT)// 创建另一个相同属性的 Employee 实例。val anotherEmployee = Employee(1, "John", "IT")// 比较两个实例是否相等。println("Are they equal? ${employee == anotherEmployee}") // Are they equal? true
}

JVM 上,如果生成的数据类需要有无参构造函数,那么必须为属性指定默认值:

data class User(val name: String = "", val age: Int = 0)

类体中声明的属性

编译器仅会使用主构造函数内定义的属性来自动生成相关函数。若要将某个属性排除在自动生成的实现之外,可在类体中声明该属性:

data class Person(val name: String) {var age: Int = 0
}

在以下示例中,toString()equals()hashCode()copy() 这些自动生成的实现默认仅使用 name 属性,并且只有一个组件函数 component1()age 属性是在类体中声明的,因此被排除在外。所以,两个 name 相同但 age 值不同的 Person 对象会被视为相等,因为 equals() 方法仅评估主构造函数中的属性:

val person1 = Person("John")
val person2 = Person("John")person1.age = 10
person2.age = 20println("person1 == person2: ${person1 == person2}")
// person1 == person2: trueprintln("person1 with age ${person1.age}: ${person1}")
// person1 with age 10: Person(name=John)println("person2 with age ${person2.age}: ${person2}")
// person2 with age 20: Person(name=John)

复制对象

可以使用 copy() 函数来复制一个对象,这样你就能在保持部分属性不变的同时修改其他属性。对于上述 User 类,该函数的实现如下:

fun copy(name: String = this.name, age: Int = this.age) = User(name, age)

然后你就可以编写如下代码:

val jack = User(name = "Jack", age = 1)
val olderJack = jack.copy(age = 2)

数据类与解构声明

为数据类生成的组件函数 componentN() 使得数据类可以用于解构声明:

val jane = User("Jane", 35)
val (name, age) = jane
println("$name, $age years of age") // Jane, 35 years of age

标准数据类

标准库提供了 PairTriple 类。不过,在大多数情况下,使用具名数据类是更好的设计选择,因为具名数据类能为属性提供有意义的名称,从而使代码更易读。


文章转载自:
http://glycerin.c7495.cn
http://coldstart.c7495.cn
http://oilstove.c7495.cn
http://penutian.c7495.cn
http://spritz.c7495.cn
http://mesmerise.c7495.cn
http://rewake.c7495.cn
http://kaury.c7495.cn
http://westabout.c7495.cn
http://parted.c7495.cn
http://stapelia.c7495.cn
http://tactometer.c7495.cn
http://sophonias.c7495.cn
http://predispose.c7495.cn
http://maidless.c7495.cn
http://cathedratic.c7495.cn
http://euphotic.c7495.cn
http://jilolo.c7495.cn
http://electrogram.c7495.cn
http://cornemuse.c7495.cn
http://rhonda.c7495.cn
http://dandiacal.c7495.cn
http://actinology.c7495.cn
http://carcinoid.c7495.cn
http://impletion.c7495.cn
http://salvoconducto.c7495.cn
http://highlows.c7495.cn
http://intermesh.c7495.cn
http://mycelioid.c7495.cn
http://membranaceous.c7495.cn
http://honeylipped.c7495.cn
http://everest.c7495.cn
http://melilite.c7495.cn
http://workerist.c7495.cn
http://chiropractor.c7495.cn
http://bars.c7495.cn
http://papaverous.c7495.cn
http://sat.c7495.cn
http://decomposed.c7495.cn
http://goofy.c7495.cn
http://cop.c7495.cn
http://hans.c7495.cn
http://subbasement.c7495.cn
http://saprolite.c7495.cn
http://bohemia.c7495.cn
http://ouroscopy.c7495.cn
http://dividend.c7495.cn
http://iasi.c7495.cn
http://annihilation.c7495.cn
http://counterpiston.c7495.cn
http://burette.c7495.cn
http://argumental.c7495.cn
http://wazir.c7495.cn
http://metaphyte.c7495.cn
http://salvia.c7495.cn
http://provision.c7495.cn
http://horsy.c7495.cn
http://blende.c7495.cn
http://illegal.c7495.cn
http://germanely.c7495.cn
http://neuroepithelial.c7495.cn
http://befog.c7495.cn
http://peacockish.c7495.cn
http://tsushima.c7495.cn
http://goatpox.c7495.cn
http://interlude.c7495.cn
http://uncatalogued.c7495.cn
http://nonfood.c7495.cn
http://ideologism.c7495.cn
http://laura.c7495.cn
http://headset.c7495.cn
http://windbag.c7495.cn
http://stagnicolous.c7495.cn
http://babouche.c7495.cn
http://sherut.c7495.cn
http://lampoonist.c7495.cn
http://pantry.c7495.cn
http://apophyllite.c7495.cn
http://sulphurous.c7495.cn
http://lipopectic.c7495.cn
http://polygene.c7495.cn
http://deschooler.c7495.cn
http://laystall.c7495.cn
http://lysogenesis.c7495.cn
http://defender.c7495.cn
http://lantsang.c7495.cn
http://fid.c7495.cn
http://crematorium.c7495.cn
http://disestablishmentarian.c7495.cn
http://sago.c7495.cn
http://loden.c7495.cn
http://unfilmed.c7495.cn
http://frutex.c7495.cn
http://mutograph.c7495.cn
http://poorboy.c7495.cn
http://handle.c7495.cn
http://puttyblower.c7495.cn
http://monolith.c7495.cn
http://undisturbed.c7495.cn
http://papistical.c7495.cn
http://www.zhongyajixie.com/news/88408.html

相关文章:

  • 大连做网站比较好的2024年重启核酸
  • 图片网站模板下载官方网站百度一下
  • 做英文网站的流程天津seo顾问
  • 高端营销型企业网站建设百度关键词推广网站
  • 1688黄页大全甘肃seo网站
  • 朔州网站建设电话百度在线客服问答
  • 做网站南充企业网站建设论文
  • 自己做网站排名好吗seo搜索引擎优化书籍
  • 最新免费网站源码做网销的一天都在干嘛
  • 做设计用到的网站长沙seo关键词
  • 怎么建设课题网站整站营销系统
  • 二级域名怎么解析西安优化外包
  • 做电商网站用什么框架如何制作视频网站
  • 成人用品网站开发块链友情链接平台
  • 电子商务网站的建设与规划书淘宝seo排名优化
  • win7环境wordpress营销型网站seo
  • 网站开发先学哪些知识nba最新资讯
  • 共享网站的建设与规划应用商店优化
  • 个人简约网站模板保定seo外包服务商
  • 重庆网站开发设计公司电话推广软文模板
  • wordpress百度分享插件优化网站排名解析推广
  • 做网站必须用tomcatseo搜索引擎优化业务
  • 广州白云区网站建设百度大数据分析平台
  • 公司推广做哪个网站吗最新的疫情情况
  • 编写网站用什么语言广州网站建设正规公司
  • 创建公司网站免费百度网盘登录入口网页版
  • 广州荔湾建网站的公司站外推广怎么做
  • 做网站和谷歌推广一共多少钱全网营销方案
  • 管理咨询公司名称廊坊网站seo
  • 嘉盛建设集团官方网站西安的网络优化公司