kotlin委托 经常在 Kotlin 的源码三方库中看到by关键字,这种写法就是委托,主要有两个应用场景,一个是委托类,另一个是委托属性,每个场景中又有不同的用法,我们可以对比 Java 的委托来学习 Kotlin 的委托。 2024年05月27日 #Android #Kotlin
kotlin泛型:逆变与协变 泛型中涉及到的概念也不少,型变(Variance)、逆变(Contravariance)、协变(Covariance)、不变(Invariant).在 kotlin 中还有三个关键字in、out、where、reified等,在java中同样也有? extends、? super、?这些概念是啥意思嘞?引用点概念说明 型变(Variance)、协变(Covariance)、逆变(Contrava 2024年04月30日 #Android #Kotlin
kotlin作用域函数:run、let、also、apply、with 刚开始学习 kotlin 的时候,对于这些作用域函数一头雾水,搞不明白为什么要弄出来这么多东西。现在来看看他们具体的区别以及适用的场景。Kotlin 标准库包含几个函数,它们的唯一目的是在对象的上下文中执行代码块。 当对一个对象调用这样的函数并提供一个lambda表达式时,它会形成一个临时作用域。在此作用域中,可以访问该对象而无需其名称。这些函数称为作用域函数。 共有以下五种:let、run、wi 2024年04月28日 #Android #Kotlin
Kotlin中的函数类型及 Lambda 表达式 继续上次在扩展函数中遗留下的问题:函数类型。总所周知,在Kotlin 中函数是一等公民。那么什么是高阶函数嘞?到处翻了翻,发现差不多是这么个意思:接受一个或多个函数作为参数,或者返回一个函数。在 Kotlin 协程中的 launch、async函数以及各种各样的框架中到处都是高阶函数的影子,称高阶函数是 Kotlin函数式编程、各大框架的基石也不过分。 2024年04月23日 #Android #Kotlin
Kotlin中的函数类型及扩展函数 继续kotlin 的学习,之前只是学了点皮毛中的皮毛,会了一些简单语法而已。最后面列了一个大纲,认真的学习一下。今天的内容是扩展。gradle:8.5,插件:id ‘org.jetbrains.kotlin.jvm’ version ‘1.9.23’ 2024年04月22日 #Android #Kotlin
Retrofit流程分析 在之前的文章中介绍了《在kotlin协程中使用自定义CallAdapter处理错误》,既然选择了它,当然得先全面了解一下。先下载一下源码,搭建一下环境,也没啥好说的,我下载的是2.11.0 版本的代码,使用的 IDEA2023.3.6。这都是小事情,只要能有代码跳转功能就好。首次配置需要下载相应依赖,时间会长一些,这不重要。等配置完成后,找到 simple module,有各种各样的示例代码。是可 2024年04月07日 #Android #Retrofit
在kotlin协程中使用自定义CallAdapter处理错误 前言Retrofit在2019-06-05发布的2.6.0版本中就已经支持Kotlin 中的 suspend修饰符了,目前正准备在项目中使用 Kotlin,顺便替换一下网络库。这里先做一下调研和基础建设,方便后续的接入工作。问就是15 年 16 年的老项目,之前并没有使用 Kotlin 的打算。 Retrofit已经在2024-03-28更新到2.11.0版本了,就用这个来做调研好了。 添加依赖1 2024年03月29日 #Android #Kotlin #Retrofit
鸿蒙ArkUI-X 跨平台通信:从入土到复活 2024.01.31 更新在上一篇 鸿蒙跨平台 ArkUI-X从入门到入土 中提到创建 Bridge 对象时失败的问题,在本文中提到的问题又重新验证了几次,咨询了一下相关人员,结论是这样的 在 Arkui-X 中,如果 Bridge 对象声明为成员变量并且立即创建,这时候 preview 会白屏,是加载界面时就挂了,因为这个bridge对象,是需要 native 侧的文件支持的,比如Andro 2024年03月27日 #HarmonyOS
鸿蒙跨平台 ArkUI-X从入门到入土 2024.01.31 更新码完了鸿蒙ArkUI-X 跨平台通信:从入土到复活在本文中提到的问题又重新验证了几次,咨询了一下相关人员,结论是这样的 在 Arkui-X 中,如果 Bridge 对象声明为成员变量并且立即创建,这时候 preview 会白屏,是加载界面时就挂了,因为这个bridge对象,是需要 native 侧的文件支持的,比如Android中的libbridge.so(集成产物到 2024年03月27日 #HarmonyOS
鸿蒙--canvas 画时钟 前言你在 Android 上能画出来的东西,在鸿蒙上画不出来?画个时钟嘛,有啥难的?你行你上!给钱就上!给钱?早说嘛,来来来,现在就画 准备画时钟需要画哪些元素?圆圈、直线,没了,就这些,临时看一下canvas 相关的 api,这不都有么?直接画。看看需要用的方法 1arc(x: number, y: number, radius: number, startAngle: number, en 2024年03月27日 #HarmonyOS