小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
专注于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”
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:芝麻粒儿 的个人主页 - 专栏 - 掘金 (juejin.cn)
📢欢迎点赞👍收藏🌟留言📝