Step into Kotlin - 16 - Data 类与 When 表达式
2015-07-20 09:45
218 查看
目录
Data Class 与 When
Data Class
特点
创建 Data 类
使用 Data 类
When
特点
When 中的表达式
匹配值和范围
匹配类型
匹配参数
摘要
Data 类的声明和使用,When 的匹配
Data 类默认基于构造方法实现了
Data 类可以直接使用
Data 类只表示数据,不能拥有行为
复制对象
ComponentN
模式匹配可以匹配值,类型
类名,用于进行类型匹配
范围,用于匹配范围
函数,用于匹配参数
else,匹配其它情况
Data Class 与 When
Data Class
特点
创建 Data 类
使用 Data 类
When
特点
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") }
相关文章推荐
- Java内存溢出和内存泄露
- 现在就开始使用AngularJS的三个重要原因
- 设计模式之-----策略模式
- SecureCRT 保存FTP用户登录密码
- 解决:C8051系列单片机,代码量较大时工作不正常问题
- Log4j配置文件的详解
- 让应用停留在后台模式的三种方式
- #1032 : 最长回文子串
- [extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装
- [LeetCode][Java] Reverse Linked List II
- PuTTY SSH 使用证书免密码登录
- PuTTY + Xming 远程使用 Linux GUI
- 跟我一起写 Makefile(四)
- [extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装
- [extjs5学习笔记]第三十八节 sencha CMD 6.0.0.220版本安装
- PuTTY + Xming 远程使用 Linux GUI
- error: stray ‘\302’ in program; error: stray ‘\240’ in program 问题解决办法
- 工业相机中的全局快门与卷帘快门
- 超越MySQL:三个流行MySQL分支的对比
- 在ubuntu 12.04 上将默认的gcc 4.6 改成gcc 4.4