本文不针对新手Android直接入手kotlin的同学,希望可以对一直使用java做安卓想转konlin的同学有一丢丢帮助
最近开始使用kotlin些项目,用了差不多有两个多月了。差不多学个两三天就能基本上手开发项目,当然,在后续使用也是不断的查资料(ctrl + c)。现在做一些简单语法的对比,也算是学习kotlin的历程吧!
kotlin中的for循环for条件体中的语法较为简洁
for (i in 0..9) {
}
//集合的遍历
var list = ArrayList<String>()
for (i in list.indices){
var s = list[i]
}
对应的java语法的for循环
for (int i = 0; i < 9; i++) {
}
//集合的遍历
List<String> list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
String s = list.get(i);
}
kotlin中的when,刚开始以为和java中的while差不多,实际上是java中的switch...case...语句
var a = 0
var b = "心情"
when(a){
0 -> b = "伤心" //简单的处理
1 -> b = "开心"
2 -> b = "疯狂"
3 -> { //复杂的处理
a ++
b = "愤怒"
}
}
对应java中的swich...case...语句就不多说了
kotlin中的if语句基本和java中的用法一样,其中有种简写方法还是有区别的,个人觉得可以替代java中的三目运算符,目前在kotlin中我没发现三目运算符的语法。。。
var x = 0
var y = 1
var z = -1
z = if (x > y) x else if(y > x) y else -1
//取x,y中较大的值,并赋值于z
(先到这吧,下班啦)
今天做一些监听事件写法上的对比
下面是封装的一个获取地理位置信息方法,有成功返回监听,java中的使用如下
LocationUtil.getLocationDetails(getActivity(), new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
//aMapLocation..
}
});
下面是kotlin中几种不同写法代码
LocationUtil.getLocationDetails(activity,object : AMapLocationListener{
override fun onLocationChanged(p0: AMapLocation?) {
p0!!.
}
})
LocationUtil.getLocationDetails(activity) { p0 ->
//activity.log(p0!!.toString())
p0!!.
}
LocationUtil.getLocationDetails(activity) {
it.
}
上面三种写法不同,作用相同,最后一个里面的 it 就是前面的 p0,zz最后一种写法只适用与只有一个参数的监听器中,多个参数还是使用第二种写法
先到这