kotlin
文章平均质量分 75
大于弱智
生活不是程序,末疲于逻辑
展开
-
kotlin className.() 类名点花括号 T.()
一、概述在看一些开源,或者他人的代码的时候遇到这种语法。高级函数参数里有个 类名.(),曾经也抄过放到自己的代码里。但是没有深究,一段时间后看的时候又忘记是什么意思了,so 记录一下。二、先说结论className.() 在高阶函数中出现,作为高阶函数的一个参数。表示:一个以className 对象作为参数的函数或者Lambdafun className.()//表示的是fun xxx(ob:className){}//或者{ ob:className->}细节thi原创 2022-03-24 14:50:57 · 1369 阅读 · 2 评论 -
kotlin 协程并发简单案例说明
1、概述kotlin 协程,自己在项目中用来进行同步串行调用的比较多。 对于并发调用,虽然知道用async,但是也是有些不清晰的,还有asynic 还有个lazy模式。所以写了个简单的例子好理解些。2、示例2.1 fun test1() { GlobalScope.launch { val old = System.currentTimeMillis() Log.d("lee", "----test1---")原创 2020-06-17 22:57:04 · 1375 阅读 · 0 评论 -
kotlin 星号投影(泛型里的 * )
1、概述在Kotlin 的泛型封装里,会出现 <*> 称为星型投影语法。用来表明"不知道关于泛型实参的任何信息"。2、结论<*>星型投影,修饰的容器(比如:MutableList,MutableMap ),只能读不能写。 相当于<out Any?>比如:MutableList<*> 表示的是 MutableList<out Any?...原创 2018-11-22 16:40:03 · 5589 阅读 · 6 评论 -
kotlin: with,apply
1、概述除了 ?.let 在作为安全可控性的时候好用外,with,apply 也是使用频率很高的。其中 apply 尤其好用。 在java 代码中想要链式编程,设置一个对象的属性时,往往跑到这个属性去把该set方法返回this,方便编程。或者更规范的另外建个 builder。然而在kotlin 里用apply 就可以了2、with 函数with 函数把第一个参数,作为lambda(第...原创 2018-09-12 18:03:32 · 1328 阅读 · 0 评论 -
kotlin 备忘( java 的final static 常量转换为kotlin 的正确姿势)
1、概述java 和kotlin 混合编码已经一段时间了,java中经常在类(或者interface)里写 public final static 常量来代替枚举。 java 的final static 常量转换为kotlin 时,直接用IDE 自动转转的是不够好的。特此记录下2、结论java 的final static 常量转换为kotlin 时,要加上 const 关键字,...原创 2018-09-06 10:55:29 · 6196 阅读 · 0 评论 -
Kotlin java 在android 中混合编译的问题
1、概述android 项目中 kotlin 和 java 混合使用也有一段时间了。基本没有出现什么大问题,然后不是没有出过问题。2、遗留问题(针对java和kotlin 混合使用的项目)2.1、java kotlin 混合使用,同时使用 Glide 图片加载项目会失败。解决: 现在是java写了一个调用GlideApp 的函数, kotlin 调用该函数。 不直接调用GlideA...原创 2018-09-06 10:20:18 · 3115 阅读 · 3 评论 -
Kotlin (四) JSON解析(kotson 解析 data, json泛型)
一、概述kotlin 解析 json,直接调用 java的json库是没问题的,比如 Gson, fastjson。 但是比如 fatsjson 在解析 data 类时会报错:没有默认构造函数//使用 compile 'com.alibaba:fastjson:1.1.68.android' 测试结果com.alibaba.fastjson.JSONException: default...原创 2018-06-07 17:14:19 · 26777 阅读 · 0 评论 -
Kotlin(三)let 函数(处理可空表达式 替换断语句)
一、概述let 表达式,和 ‘ ?. ’运算符一起使用,很方便。不好描述,见下图二、适用场景一个对象的深层次嵌套属性需要拿来进行逻辑, 需要层层判断该属性是否为null 的。 很适合用let 表达式代替 断语句原来代码:fun logicFee(event: PassiveRequestEvent) { if (event.passiveType == Passiv...原创 2018-06-06 00:20:54 · 9453 阅读 · 0 评论 -
Kotlin(二) 高级函数(函数作为形参,函数作为参数)
一、概述在JS,C 等语言中函数式的编程是很常见的,函数作为参数传递,在目标函数中再调用。很灵活简洁的编程方式。 Java不能直接用函数作为形参,只能传递对象的引用,所以在需要回调函数时,往往传递的是接口的匿名实现。二、高阶函数 示例高阶函数:以另一个函数作为参数,或者返回值是函数 称为 高阶函数 需要补充一些lambda的语法糖 函数作为参数:回调函数的作用,类比接口 返回...原创 2018-06-05 23:32:57 · 13522 阅读 · 0 评论 -
Kotlin (一) 复合符号( '?.' '?:' '!!' 'as?' '?' )
一、概述项目中慢慢开始,写一些简单的 kotlin类了,挺方便的一个语言,借鉴了不少脚本语言的特点。刚开始用,有些点经常要翻越,特别记录下。二、常用的几个复合符号《Kotlin 实战》小人系列,的这本书里 画的图很清晰了,我又重画了一遍。‘ ?.’安全调用符if (foo != null){ return foo.bar()}else{ return...原创 2018-05-25 10:51:10 · 46167 阅读 · 17 评论