Kotlin虽然能调用java类库,但存在很大的语法差异,有语言基础的同学,学起来可以通过类比的方式循序渐进。由于我之前一直使用java进行Android开发,学起来比较顺手。
参考网上资料整理了kotlin中的关键字(可能有遗漏,请回复补充)
by、as、lazy、init、downTo、when、in、is、and、or
声明:open、sealed、override、fun、inline、internal、data、companion、object、lateinit、var、val
数据类型:Any(Object)、Unit(Void)
基本类型:Byte、Char、Short、Int、Float、Long、Double、Boolean
kotlin中基本数据类型作为对象存在,在实际开发中参考api使用。
字符串
不同于Java中的表现形式,使用$符号进行字符串拼接,$支持表达式,用{}括弧。
val a = "test"//定义字符串
val a1=a[1]//结果为e
val b = "copy $a" //字符串拼接使用$,结果为copy test,当然java中的+也支持,不推荐
val c = "a+b=${a+b}"//$支持表达式,结果为a+b=copy testtest
val d ="${'$'}9.99"//结果为$9.99
if条件表达式
kotlin中if不再是一个条件判断语句,而是表达式,有返回值,因此也不需要三目运算符(xx?xx:xx)。
val a:Int=1
val b:Int=2
val c:Boolean=if(a<b) {
print(a)
true
}else{
print(b)
false
} //返回true
fun max(a:Int,b:Int) = if(a>b) a else b //判断大小,返回b
另一个强大的判断语句when
代替了java中的switch...case,条件可以是基本数据类型、字符串、表达式,语法自由的lambda表达式,具体参考如下实例代码。
可将逻辑判断结果赋值给常量、变量,甚至可以作为函数返回值
when语句必须包含else分支,类似java switch里的default分支。
in关键字
判断一个对象是否在某个区间内,使用in关键字,也可当做java中for each遍历数组、集合,也可判断某个元素是否在集合中,更多功能在实际开发中能使用到。
in关键字的内部实现原理:
for( int i = first ; i != last ; i += step){
//.........
}
Return、Break和Continue
这3个关键字在kotlin中的使用与java中略微不同,kotlin中任何表达式都可以使用标签(xx@)标记,并且函数可以嵌套,因此我们可以使用标签来限制return、break、continue的使用。
上述运行结果是:
i=1,j=5
i=0
continue,i=1,j=5
i=2
break,j=5
i=3
i=4
continue,i=5,j=1
Process finished with exit code 0
通过运行上述代码,我们可以理解标签的作用,自己动手敲一遍代码比copy理解的更透彻。
return的使用稍有不同,请看如下实例代码:
运行结果:
return,k=1
return,k=3
return,k=5
return,k=7
return,k=9
Process finished with exit code 0
代码简洁,实际操作过程中,可通过标签的有无运行上述代码进行理解。不多解释。