本文不针对新手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最后一种写法只适用与只有一个参数的监听器中,多个参数还是使用第二种写法
先到这