写了好长时间的移动端程序,都是基于 Java 的,时代在改变,现在有好多 Kotlin 的示例,虽然不一定以后会用到 Kotlin 去构建工程,但是不好说会有需要参考的 Kotlin 示例,直接看 Kotlin 的工程感觉有点吃力,学一点新的语言,丰富一下自己的技术宽度。
注:以下示例都是基于 Android 平台
函数声明和定义
每种语法在函数的使用上都会有些区别,先看看 Kotlin 的函数是怎么使用的
1、一般函数的声明
private fun caculate(a : Int, b : Int) : Int{
return a + b
}
上述示例里面和 Java 最大的区别就是入参的形式,参数名在前,参数类型在后,使用 : 分开,函数声明的结尾处表示该函数的返回类型
2、匿名函数,在使用线程的时候,很多时候会开辟一个短小的匿名线程类似
var testfun : (Int, Int) -> (Int) = {a,b -> a + b}
var testSum = testfun(3,4);
匿名函数分前后两部分,前部分表示入参和出参类型,后部分表示实际的处理
变量声明
var name : String = "a" //一般变量
val age : Int = 19 //常量,类似 Java 的 final 类型
字符串拼接
在最终获取的字符串上使用 $,表示一个变量名或者变量值,用于替换变量的实际数据
var tmp = 1
val finalStr = "tmp is $tmp"
NULL检查机制
Kotlin 的 null 安全设计对于声明可为空的参数,强制使用时进行判空处理
在函数声明结束使用 ? 可以,可以返回不符合要求的类型
数字比较
Kotlin 中没有基础数字类型,只有封装的数字类型,定义的每一个变量,都是 Kotlin 封装的一个对象,通过封装的对象可以保证不会出现空指针。所以在比较两个数字时,就只有比较数据大小和对象是否相同。使用三等号 === 表示比较对象地址,双等号 == 表示比较数值值大小。
位操作符
以下时常用的位操作符,分别是:
shl – 左移位 (对应 Java 的 <<)
shr – 右移位 (对应 Java 的 >>)
ushr – 无符号右移位 (对应 Java 的 >>>)
When 表达式
when 将它的参数和所有的分支条件顺序比较,直到某个分支满足条件,类似 Java 中的 switch-case 语法,不同点在于,支持 is、in 关键字。
val items = setOf("android", "ios", "windows")
var x : String? = "123"
when (x) {
// is String -> Log.e("XXX", "333") // 支持类型判断
in items -> Log.e("XXX", "222") // 支持区间判断
else -> Log.e("XXX", "111") //输出 111
}