Kotlin
张鹿鹿
这个作者很懒,什么都没留下…
展开
-
快速上手 Kotlin 开发系列之协程的挂起
站在巨人的肩膀上做个笔记,摘录自:https://kaixue.io/kotlin-coroutines-2前言上一节中我们提到了下面的示例,它使用了 async 关键字来创建一个协程。launch(Dispatchers.Main) { val avatar = async { getAvatar() }//获取用户头像 val logo = async { getLogo() }//获取 Logo mergeShowUI(avatar.await(), logo.awa.原创 2020-07-05 09:46:20 · 1282 阅读 · 4 评论 -
快速上手 Kotlin 开发系列之什么是协程
站在巨人的肩膀上做个笔记,摘录自:https://kaixue.io/kotlin-coroutines-1协程是什么协程的概念并没有官方的或者统一的定义,协程原本是一个跟线程非常类似的用于处理多任务的概念,是一种编程思想,并不局限于特定的语言。那在 Kotlin 中的协程是什么呢?其实就是一套有 Kotlin 官方提供的线程 API。就像 Java 的 Executor 和 Android 的 AsyncTask,Kotlin 协程也对 Thread 相关的 API 做了一套封装,让我们不.原创 2020-07-05 09:45:40 · 334 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之类型映射
本节介绍 Kotlin 中类型映射。Kotlin 中有一个比较有意思的关键字:typealias,有点类似于 C/C++ 代码中的 define,可以将一个类映射到另一类上,但是不同的是 C/C++ define 是宏定义会在编译时转换成对应的类,而 Kotlin 中的 typealias 则表示两个类是完全一致的。在写代码时,不管是写原始类还是映射类,都是可以的。例如下面的示例中使用 A 类映射一个 File 类。public typealias A = File在创建对象时既可以用 A 类.原创 2020-07-05 09:44:27 · 564 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之反引号
本节详细介绍 Kotlin 中的反引号。首先需要明确反引号是哪个,反引号:键盘左上角与波浪线在一起的符号。在 Kotlin 中反引号有两个特性:可以解决关键字冲突的问题可以强行将一个不合法的字符变为合法其中第 1 个特性在前面的文章【快速上手 Kotlin 开发系列之与 Java 互调 (1)】中已经提到过,不再赘述。今天着重介绍它的第 2 个特性,将不合法的字符强行变为合法。强制字符合法化例如,我们在命名一个函数名时,我们是不能使用纯数字或者空格来命名:但是我们可以通过反引号包.原创 2020-06-29 08:46:50 · 894 阅读 · 1 评论 -
快速上手 Kotlin 开发系列之比较对象
本节介绍 Kotlin 中对象的比较。Java 比较对象我们知道 Java 在比较对象的时候,是通过 == 来判断两个对象是否完全相同,通过 equals 方法判断两个对象的值是否相同:public static void main(String[] args) { String string = "string"; String newString = new Stri...原创 2020-04-13 22:43:19 · 1061 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之运算符重载
本节介绍 Kotlin 的运算符重载。在 Kotlin 中有非常多的运算符是通过重载来完成的,例如用于 String 拼接的 +,for 循环中的 ..。运算符重载我们看下面的示例,for 循环中遍历 1 到 100,其中的 .. 就是通过运算符的重载来完成的。step 是通过中缀来实现的,后面会介绍。fun main() { for(i in 1..100 step 20) ...原创 2020-04-08 23:07:23 · 176 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之操作符
本节介绍操作符的实现原理以及一些常用的操作符。为了方便理解,我们把作用域函数和集合操作符统称为 Kotlin 的操作符。操作符的实现原理作用域函数与集合操作符的原理是完全一致的,这里以集合操作符作为一个例子来看整个作用域函数和集合操作符的运行原理。来看下这个 Kotlin 内置的操作符 forEach,它其实是对泛型为 T 的 Iterable 的一个扩展函数,其实内部就是执行了 fo...原创 2020-04-07 22:35:11 · 474 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之作用域函数(1)
本节介绍 Kotlin 中的作用域函数。作用域函数是什么作用域函数是 Kotlin 内置的可以对数据做一系列变换的函数。它们与集合的操作符非常的相似,但是集合的操作符只能用于集合的数据变换,而作用域函数可以应用于所有对象,它可以对所有对象做一系列的操作。在 Kotlin 中常用的作用域函数有五个:run {...}with(T) {...}let {...}apply {...}...原创 2020-04-03 08:29:28 · 127 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之集合操作符 (2)
本节接上一篇继续介绍 Kotlin 的集合操作符和如何自定义集合操作符。通过上一节 Rxjava 的示例,我们把同样的功能使用 Kotlin 来实现。Kotlin 示例附上整体代码:fun main() { val a = arrayOf("4", "0", "7", "i", "f", "w", "0", "9") val index = arrayOf(5, 3, ...原创 2020-04-03 08:26:36 · 198 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之集合操作符 (1)
本节通过 RxJava 的集合操作引入 Kotlin 的集合操作符。如果大家有用过 RxJava 一定对操作符的概念并不陌生,RxJava 允许我们对数据做一系列的链式调用,在每一步中改变数据的格式,最终得到我们想要的数据。Kotlin 中原生的为集合添加了海量的操作符,基本上 RxJava 有的操作符 Kotlin 都会有语言层面的支持。先用 RxJava 实现一段链式调用,后面再使用 ...原创 2020-04-01 20:01:05 · 341 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之循环
本节介绍 Kotlin 的循环语法。下面的示例是我们最熟悉的循环语法,但是这种语法在 Kotlin 中是不能使用的。不过没有关系,在 Kotlin 中有更多适合的语法供我们选择。以下列出 5 种 Kotlin 中常用的循环语法:常用的循环语法第一种,其中声明一个 i 用于迭代,之后 1…10 表示的是从 1 到 10 的闭区间(1 <= x <=10)当我们把循环 ...原创 2020-04-01 20:00:27 · 938 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之解构
本节介绍 Kotlin 中特殊的数据拆箱方式:解构。解构在 Kotlin 中允许直接将一个类拆解之后并分别赋值,就像示例中的 User 对象一样,可以赋值给一个拆解开的 age 和 name 变量。解构的格式固定,val/var 括号后的第一个值与 User 类中的 component1 方法对应,相应的第二个值与 component2 方法对应,且都需要使用 operator 关键字...原创 2020-03-30 23:13:02 · 402 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之数据类和枚举
本节讨论 Kotlin 的数据类、枚举类和密闭类。数据类数据类是 Kotlin 中很特殊的一种类,它可以将我们类中的成员变量自动的生成 getter/setter 方法,以及我们经常需要重写的 toString()、hashCode()、equals()、copy() 方法,而不需要像 Java Bean 一样需要我们手动去重写这些方法。数据类的声明只需要在类的前面添加 data 关键字...原创 2020-03-29 23:17:31 · 172 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之动态代理
本节介绍 Kotlin 中没有反射的动态代理。Java 中的动态代理在讲 Kotlin 的动态代理之前先简单回顾下 Java 的动态代理,通过一个简单的例子说明下:首先,给出一个接口和其实现类:为了可以动态代理某个对象,我们实现 InvocationHandler 接口:通过 Proxy.newProxyInstance 方法创建代理对象,实现代理:Kotlin 中的动态代理...原创 2020-03-26 22:14:45 · 1018 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之伴生对象
本节将介绍 Kotlin 中的访问修饰符、伴生对象以及推荐单例的写法。访问修饰符在 Kotlin 中有四种访问符:publicprotectedprivateinternal前面三种有 Java 基础的读者肯定都比较了解。public 具有最大的访问权限,可以访问任意路径的类、接口、成员变量;protected 表示子类可以访问它修饰的父类成员变量;private 表示访问权...原创 2020-03-25 22:16:31 · 272 阅读 · 1 评论 -
快速上手 Kotlin 开发系列之构造函数
本节介绍 Kotlin 的类的声明以及构造函数类的声明在前面的文章中简单的介绍过类的声明,我们来回顾下。与 Java 类似,同样使用 class 关键字来声明一个类,后面紧跟着类名,如果该类有父类的话使用 : 分割,如果该类需要实现接口,则直接使用 , 跟在后面即可,而不是用 implement 关键字。接口和父类没有先后顺序。特别的,Kotlin 中如果没有显式的声明一个父类,那么它...原创 2020-03-25 22:01:00 · 663 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之高阶函数和内联
本节讨论 Kotlin 高阶函数以及内联的使用高阶函数高阶函数就是指函数或者 Lambda 的参数又是一个函数或者 Lambda。通过下面示例简单的了解下。首先,高阶函数也是函数,所以同样需要使用 fun 关键字来修饰,示例中的高阶函数 onlyIf,需要接收两个参数,第一个参数为 Boolean 的变量,第二个参数是参数为空返回值为 Unit 的函数。其中 Unit 就是一个没有返回...原创 2020-03-23 23:41:56 · 243 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之Lambda闭包
本节讨论 Kotlin 的 Lambda 闭包、以及它的声明和原理Lambda 闭包我们先看一个 Java 中非常常见的例子,就是创建一个子线程:我们知道 Java 8 也是有 Lambda 支持的,它可以把 Runnable 对象省略成一个 () -> 的表达形式。接下来,我们看下 Kotlin 的 Lambda 形式,与 Java 8 Lambda 类似,只不过 ->...原创 2020-03-20 09:59:41 · 302 阅读 · 1 评论 -
快速上手 Kotlin 开发系列之扩展函数
本节将着重介绍扩展函数Kotlin 中有一个非常大的优势,就是可以静态的给一个类扩展它的成员方法,以及成员变量扩展函数首先扩展函数也是一个函数,所以也需要 fun 关键字进行声明,后面紧跟着的是你需要扩展的类的类名, 比如示例中是给 File 类扩展一个成员方法,之后是一个 . 它用来分割类名和函数名,后面紧跟着的是扩展函数名,后面则与普通函数声明无异,参数、返回值以及函数体。下面我们看...原创 2020-03-19 08:21:17 · 1402 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之函数与函数嵌套
在前面的文章中简单地介绍了 Kotlin 中函数的声明,本节将介绍 Kotlin 另外一种语法特性:函数嵌套函数语法函数声明即使 Kotlin 是一门面向对象的编程语言,它依然保留了函数这样的概念,不像 Java 中,仅仅只有方法。在开始前先回顾下函数的声明:在 kotlin 中以 fun 关键字表示我要声明的是一个函数,函数的参数与变量声明类似,变量名 : 变量类型,如果需要返回值...原创 2020-03-18 08:17:26 · 714 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之与 Java 互调 (2)
本节将介绍 Kotlin 和 Java 互调过程中封装类、空值敏感以及静态变量和静态方法的处理Kotlin 没有封装类首先看看以下代码。我们用 Java 创建一个接口,如下:之后我们创建一个 A.java 实现这个接口,并在每个方法中打印对应的类型,int 和 Integer。最后,我们在 Kotlin 代码中调用它,我们来看下它的执行结果:你会发现只调用了 int 参数的...原创 2020-03-17 10:46:05 · 206 阅读 · 1 评论 -
快速上手 Kotlin 开发系列之与 Java 互调 (1)
学习完基础语法之后,我们来学习下 Java 和 Kotlin 互相调用的问题本节将介绍 Kotlin 与 Java 之间的语法变化Kotlin 文件中的函数首先让大家感到非常不适应的一点是,Kotlin 的函数居然可以直接写在文件中,而不用写在类中,但如果你知道 Kotlin 的代码编译以后依旧是 JVM 平台的一个 class,这一点应该就很好理解了。例如,我们在 Utils.kt ...原创 2020-03-16 14:14:30 · 272 阅读 · 0 评论 -
快速上手 Kotlin 开发系列之基础语法
为了能够跟进 Google 的脚步,Kotlin 成为当下 Android 开发的必备技能,从今天开始,我将从极客时间上学习的内容记录下来,方便未来查阅,该系列文章适用于有 Java 基础的开发者。我们从基础语法开始讲起IDE首先大家打开 IDE,注意我这里使用的是:Kotlin 文件创建一个以 .kt 结尾的文件,注意这是 Kotlin 的文件格式:var 和 val其中用...原创 2020-03-15 14:07:56 · 877 阅读 · 0 评论