摘要:
默认顺序调用 假设我们在不同的地⽅定义了两个进⾏某种调⽤远程服务或者进⾏计算的挂起函数。我们只假设它们都是有⽤的,但是实际上它们在这个⽰例中只是为了该⽬的⽽延迟了⼀秒钟: suspend fun doSomethingUsefulOne(): Int { delay(1000L) // 假设我们在这 阅读全文
摘要:
Kotlin使用挂起函数为异步操作,使用kotlinx.coroutines中的launch、async 1. 第⼀个协程程序 import kotlinx.coroutines.* fun main() { GlobalScope.launch { // 在后台启动⼀个新的协程并继续 delay( 阅读全文
摘要:
1. 集合操作概述: Kotlin 标准库提供了用于对集合执行操作的多种函数。这包括简单的操作,例如获取或添加元素,以及 更复杂的操作,包括搜索、排序、过滤、转换等 1.1 扩展与成员函数 集合操作在标准库中以两种方式声明:集合接口的成员函数和扩展函数。 成员函数定义了对于集合类型是必不可少的操作。 阅读全文
摘要:
1.迭代器 对于遍历集合元素,Kotlin 标准库支持 迭代器 的常用机制⸺对象可按顺序提供对元素的访问权限,而 不会暴露集合的底层结构。当需要逐个处理集合的所有元素(例如打印值或对其进行类似更新)时,迭代 器非常有用。 Iterable<T> 接口的继承者(包括 Set 与 List )可以通过调 阅读全文
摘要:
1.kotlin集合概述 在kotli.collections包中包含List(有序集合)、Set(无序集合)、Map(健值对)三种集合 2.val定义的集合,调用集合方法可以添加删除,但是如果重新创建对象,则报错 val numbers = mutableListOf("one", "two", 阅读全文
摘要:
1.内联函数 使用高阶函数会带来一些运行时的效率损失:每一个函数都是一个对象,并且会捕获一个闭包。即那些 在函数体内会访问到的变量。内存分配(对于函数对象和类)和虚拟调用会引入运行时间开销。 但是在许多情况下通过内联化 lambda 表达式可以消除这类的开销。下述函数是这种情况的很好的例 子。即 l 阅读全文
摘要:
1.高阶函数 高阶函数是将函数用作参数或返回值的函数。 一个不错的示例是集合的函数式⻛格的 fold,它接受一个初始累积值与一个接合函数,并通过将当前 累积值与每个集合元素连续接合起来代入累积值来构建返回值: fun <T, R> Collection<T>.fold( initial: R, co 阅读全文
摘要:
函数: 1.函数声明 kotlin中的函数使用fun关键字声明: fun double(x: Int): Int { return 2 * x } 2.函数用法 调用函数使用传统的方法: val result = double(2) 调用成员函数使用点表示法: Stream().read() // 阅读全文
摘要:
1.委托 1.1 委托的实现 委托模式已经证明是实现继承的一个很好的替代方式,而 Kotlin 可以零样板代码地原生支持它。 Derived 类可以通过将其所有公有成员都委托给指定对象来实现一个接口 Base : interface Base { fun print() } class BaseIm 阅读全文
摘要:
1.对象表达式与对象声明 有时候,我们需要创建一个对某个类做了轻微改动的类的对象,而不用为之显式声明新的子类。Kotlin 用对象表达式和对象声明处理这种情况 2.对象表达式 要创建一个继承自某个(或某些)类型的匿名类的对象,我们会这么写: window.addMouseListener(objec 阅读全文