Step into Kotlin - 16 - Data 类与 When 表达式

目录

摘要

Data 类的声明和使用,When 的匹配

Data Class 与 When

Data Class

特点
  • Data 类是使用关键字 data 声明的类
  • Data 类默认基于构造方法实现了 toString(), componentN(), copy(), equals()hashCode() 方法,不在构造方法中定义的属性不会产生在 toString() 结果中。
  • Data 类可以直接使用 ==进行比较,同样不在构造方法中定义的属性不会用在比较上
  • Data 类只表示数据,不能拥有行为
创建 Data 类
data class Customer(var name: String, var email: String)
使用 Data 类

创建对象

val peter = Customer("Peter", "peter@example.com")

复制对象

val peter2 = peter.copy()
val peter3 = peter.copy(name = "")

ComponentN

val (name, email) = peter
println("name=$name,email=$email")

When

特点
  • When 类似 switch 但是功能更加强大,且不需要 break 语句。
  • 模式匹配可以匹配值,类型
When 中的表达式

When 中可以使用的表达式类型

  • 类名,用于进行类型匹配
  • 范围,用于匹配范围
  • 函数,用于匹配参数
  • else,匹配其它情况
匹配值和范围
    val y = when (x) {
        1 -> 2
        3 -> 4
        3, 10 -> 30
        in 10..20 -> 20
        !in 20..30 -> 40
        else -> 0
    }
匹配类型
val x = 10
when (x) {
    is Int -> println("long")
    else -> println("else")
}
匹配参数
private fun add(x: Int): Int {
    return x + 1
}

val x = 10
when (x) {
    add(x) -> println("x=" + x)
    else -> println("else")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值