摘要:
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 阅读全文
摘要:
1.嵌套类,类可以嵌套在其他类中: class Outer { private val bar: Int = 1 class Nested { fun foo() = 2 } } val demo = Outer.Nested().foo() // == 2 2.内部类,标记为inner的嵌套类能够 阅读全文