👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉前提
当前环境
2021年10月8日最新下载2020.3.1 Patch 2 版本
👉实践过程
😜数据类
数据类就是Java中的实体类
在Kotlin中数据类使用关键词【data】修饰,在类class前面声明,只包含数据,其实和Java我们根据Json生成的实体类同样的玩意,内置了几个函数方法
equals() 比较函数
toString() 格式如 "User(name=John, age=42)"
componentN() functions 对应于属性,按声明顺序排列
copy() 赋值函数
使用Java开发的时候,我们会利用GsonFormat插件来将接口的Json数据快速生成实体。
现在Kotlin也有改类似插件,叫做【Json To Kotlin Class】。
去【File-Setting-Plugins】中搜索安装即可。
使用:利用快捷键【Alt+K】(如果和其他快捷键没冲突的话)或者打开【Generate..】功能框后里面有【Kotlin data classes from JSON】
善于使用插件,可以快速帮我们提升工作效率,在工作上提升不可替代性,进而实现涨薪。
在这提一下密封类,暂时没想到较为常用的应用环境,菜鸟教程原话:
密封类用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时。在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一个子类可以有可包含状态的多个实例。
声明一个密封类,使用 sealed 修饰类,密封类可以有子类,但是所有的子类都必须要内嵌在密封类中。
sealed 不能修饰 interface ,abstract class(会报 warning,但是不会出现编译错误)
😜泛型
泛型也是我们开发过程中常用的功能之一,和Java一样,Kotlin也是使用T表示泛型,让代码更加健壮,解决了类型转换的未知步骤。
class Person<T>(t: T) { var value = t } 复制代码
使用示例如下:
//使用范例 var age = Person<Int>(20) var name = Person<String>("Runoob") Log.e("TAG,", "输出:$age") Log.e("TAG,", "输出:$name") 复制代码
在泛型约束的使用上和Java也没明显上的差异
fun <T : Comparable<T>> myHeight(list: List<T>) { // …… } myHeight(listOf(1,2,3,4)) 复制代码
上面示例正确,因为Int 是 Comparable 的子类型
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:
https://www.zhihu.com/people/zhimalier
https://juejin.cn/user/4265760844943479
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。