Kotlin学习笔记
文章平均质量分 75
迷月星辰
这个作者很懒,什么都没留下…
展开
-
Kotlin学习笔记——(十三)协程异常处理
注:编码工具为IntelliJ目录Kotlin异常不处理的情况处理的情况协程异常处理launch方式启动的协程异常抛出和处理异常抛出常规处理:try-catch常规处理二:try-catch包裹整个协程,不起作用CoroutineExceptionHandler async方式启动的协程异常抛出和处理异常抛出处理异常CoroutineExceptionHandler全局协程异常处理器协同作用域与主从作用域异常处理的不同:针对协程嵌套协同..原创 2021-11-27 12:21:02 · 2461 阅读 · 0 评论 -
Kotlin学习笔记——(十二)协程上下文
注:编码工具为IntelliJ概念及作用 协程上下文是一个有索引的Element实例集合,每个element在这个集合里有一个唯一的key; 协程上下文包含用户定义的一些数据集合,这些数据与协程密切相关; 协程上下文用于控制线程行为、协程的声明周期、异常以及调试。组成结构 协程上下文结构图如下:Job:用于控制协程的声明周期。CoroutineDispatcher:用于向合适的线程分发任务。CoroutineN...原创 2021-11-25 12:15:44 · 2110 阅读 · 0 评论 -
Kotlin学习笔记——(十一)协程的基本使用
注:编码工具为IntelliJ目录依赖启动几种启动方式的区别阻塞与非阻塞返回值自定义作用域依赖使用协程前,需要导入协程依赖。implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2'Android中需要额外导入依赖。implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.2'启动packa原创 2021-11-24 11:29:34 · 1555 阅读 · 0 评论 -
Kotlin学习笔记——(十)用高阶函数、扩展函数简单模仿声明式UI
注:编码工具为IntelliJ目录案例一:案例二:案例三:案例一:package step_tenfun main() { // 看到花括号,想到lambda, layout { // 看到lambda里面的花括号,想到类的成员函数时高阶函数,省略了this. textview { println("textview") } button { pri原创 2021-11-14 16:54:29 · 1539 阅读 · 0 评论 -
Kotlin学习笔记——(九)仿写内置函数
注:编码工具为IntelliJ目录lambda表达式作为lambda表达式参数模仿RxJava的链式调用阶段一:阶段二:lambda中it变为this阶段三:简化map、consume和create代码阶段四:将类成员函数变为扩展函数,进一步简化代码内置函数仿写applylet runwithalsotakeIf takeUnlessIterable的forEachrepeatthreadlambda表...原创 2021-11-13 17:32:18 · 1808 阅读 · 0 评论 -
Kotlin学习笔记——(八)高阶函数案例
注:编码工具为IntelliJ目录Kotlin的lambda表达式实现原理高阶函数函数作为函数参数函数作为函数的返回值高阶函数使用案例回调高阶函数配合扩展函数使用函数作为最后一个参数的调用方式模仿监听Kotlin的lambda表达式实现原理 Kotlin内部定义了一系列FunctionX接口,在Function.kt文件中,开发者定义的lambda表达式(匿名函数),Kotlin底层会通过实现FunctionX接口的方式实现。package...原创 2021-11-12 21:55:32 · 1523 阅读 · 0 评论 -
Kotlin学习笔记——(七)lambda表达式与高阶函数
注:编码工具为IntelliJ目录函数类型变量函数类型变量声明函数变量自动类型推断函数类型变量声明结合实现函数类型变量的两种调用方式某种数据类型的扩展函数类型变量正常定义的函数返回值将普通函数用函数引用赋值给变量嵌套高阶函数初探笔记二里面记录过匿名函数和lambda表达式,这节稍微展开记录一些相关的定义和使用。函数类型变量 Kotlin中函数可以作为一种类型,可以定义变量,可以将匿名函数,也即lambda表达式赋值给函数类型变量。函数...原创 2021-11-09 22:34:49 · 353 阅读 · 1 评论 -
Kotlin学习笔记——(六)接口、抽象类、泛型、扩展、集合操作符、与Java互操作性、单例
接口 接口默认是open的,接口成员默认也是open的。示例interface InterfaceTest { fun test()}class InterfaceTestImpl : InterfaceTest{ override fun test() { println("这是实现自InterfaceTest的方法") }}fun main() { InterfaceTestImpl().test()}输出:...原创 2021-11-07 19:13:08 · 1032 阅读 · 1 评论 -
Kotlin学习笔记——(五)类
注:编码工具为IntelliJ目录类的继承和方法重写智能转换:is asobject类型object表达式伴生对象:companion object嵌套类和内部类数据类型:data class自定义解构函数运算符重载枚举:enum class密封类:sealed class类的继承和方法重写 Kotlin的类和方法默认都是public final的,如果想要让类可以被继承、方法可以被重写,需要在类声明和方法声明前添加open关键字。...原创 2021-11-06 17:37:39 · 547 阅读 · 0 评论 -
Kotlin学习笔记——(四)List、Set、Map、数组和类
注:编码工具为IntelliJList创建 List分为可变和不可变两种,之间可以相互转换。fun main() { val intList = listOf(1, 2, 3) // 创建可变List val intMutableList = mutableListOf(1, 2, 3)// 创建不可变List println(intList) println(intMutableList) println(intList.toMuta...原创 2021-11-01 22:33:44 · 644 阅读 · 0 评论 -
Kotlin学习笔记——(三)空安全机制、异常、字符串和内置函数
注:编码工具为IntelliJ空安全机制 Kotlin定义任意数据类型变量,默认是不可空类型,不能赋值null给该变量。 Kotlin定义任意数据类型可空变量,需要在数据类型后面加问号(?),如:var str: String? = null。示例:fun main() { var str = "string" // str = null // 编译器报错:Null can not be a value of a non-null type ...原创 2021-10-31 16:25:39 · 277 阅读 · 0 评论 -
Kotlin学习笔记——(二)匿名函数、函数类型和lambda表达式
注:编码工具为IntelliJ目录匿名函数入门示例函数类型和隐式返回定义函数类型变量的两种方式方式一:方式二:函数类型作为函数参数非内联函数内联函数函数引用函数作为函数的返回值匿名函数入门示例fun main() { val len = "KimuraTakuya".count { it == 'a' } println(len)}输出:3 示例中的{it == 'a'}就是一个匿名函数。 ...原创 2021-10-30 22:40:19 · 408 阅读 · 0 评论 -
Kotlin学习笔记——(一)变量、语句和函数
注:编码工具为IntelliJ为什么要学习Kotlin? 我本身是Android开发工程师,Kotlin被Google宣布为Android第一开发语言,主要是为了避免诉讼问题,Oracle近年来因为Android未经授权使用JavaAPI对Google提起了多场诉讼,Google饱受侵权困扰。 Android后续新技术如jetpack越来越多的使用kotlin作为主要开发语言,为了跟上时代。 国外越来越多的开发者和三方库使用kotlin进行开发。...原创 2021-10-30 18:31:00 · 215 阅读 · 0 评论