👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
👉前提
当前环境
2021年10月8日最新下载2020.3.1 Patch 2 版本
👉实践过程
😜Null检查
Null安全是Kotlin的宣传特点,但是他并不是无感的,其实就是靠强制的代码规范,让你写的代码有良好的空判断。虽然Java也可以做到,但是因为是主观的意识,任何人都存在拉下的可能。
所以Kotlin来帮咱们做这件事,如果你不遵守,直接编译项目的时候就编译不过去。
所以从变量声明的时候就不能为空,需要特殊处理,这和【TypeScript】很类似。
字段后加【!!】(双叹号)会抛出空异常,加上【?】代表可为空,默认变量不能为空,会报错。
//类型后面加?表示可以为空 var myAge: String? = "666" myAge = null //变量为空时抛出空指针异常 val ageZero = myAge!!.toInt() //判断myAge为空 则ageOne也为空 val ageOne = myAge?.toInt() Log.e("TAG", "芝麻粒儿输出1: " + ageOne) //myAge为空的时候返回-1 val ageTwo = myAge?.toInt() ?: -1 Log.e("TAG", "芝麻粒儿输出2: " + ageTwo) 复制代码
😜类型检查
Java中有【instanceof】关键字可以检测是否为某个类型,Kotlin中也有,是【is】
//类型后面加?表示可以为空 var myAge: String? = "666" if (myAge is String) { //判断变量myAge是否为字符串类型 } 复制代码
Kotlin有一个【Any】类型,结合【is】,可以自动转换类型,如下
//类型后面加?表示可以为空 var myAge: Any? = "666" if (myAge is String) { //判断变量myAge是否为字符串类型 Log.e("TAG", "芝麻粒儿输出0: ${myAge.length}") } 复制代码
😜区间
这点倒是个新鲜词,顾名思义就是数学上的区间,比如1到10所有的数字。使用【..】实现,注意是两个点不是三个点,不要和Java的可变参数搞混了。
暂时还没想到应用场景
for (i in 1..6) Log.e("TAG", "芝麻粒儿输出3: $i") // 输出“123456” for (i in 1..6 step 2) Log.e("TAG", "芝麻粒儿输出4: $i")// 设置步长,步长和间隔是有区别的 间隔是步长减一 为1 输出“135” //有正序的就有倒叙的 for (i in 6 downTo 1) Log.e("TAG", "芝麻粒儿输出5: $i") // 输出“654321”
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:
https://www.zhihu.com/people/zhimalier
https://juejin.cn/user/4265760844943479
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。