随笔分类 - kotlin基础
摘要: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的嵌套类能够
阅读全文
摘要:数据类,用来保存数据的类,使用data对class进行标记 data class User(val name: String, val age: Int) //编译器自动从主构造函数中声明的所有属性导出以下成员: //— equals() / hashCode() 对; //— toString()
阅读全文
摘要:1,扩展概念(OC中早期就有此功能) Kotlin 能够扩展一个类的新功能而无需继承该类或者使用像装饰者这样的设计模式。这通过叫做 扩展 的特殊声明完成。例如,你可以为一个你不能修改的、来自第三方库中的类编写一个新的函数。这个新 增的函数就像那个原始类本来就有的函数一样,可以用普通的方法调用。这种机
阅读全文
摘要:1.在 Kotlin 中有这四个可⻅性修饰符:private 、protected 、internal 和public 。如果没有显式指定修饰符的话,默认可⻅性是 public 。 2.包,函数、属性和类、对象和接口可以在顶层声明,即直接在包内 // 文件名:example.kt package f
阅读全文
摘要:1.接口定义,使用关键字interface 来定义接口 interface MyInterface { fun bar() fun foo() { // 可选的方法体 } } 2.实现接口,一个类和对象可以实现一个或多个接口 class Child : MyInterface { override
阅读全文
摘要:1.声明属性,Kotlin 类中的属性既可以用关键字 var 声明为可变的,也可以用关键字 val 声明为只读的 class Address { var name: String = "Holmes, Sherlock" var street: String = "Baker" var city:
阅读全文
摘要:1.类的定义,kotlin中依旧使用关键字class声明类,类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号包围的类体构成。类头与类体都是 可选的;如果一个类没有类体,可以省略花括号。 //1.简单定义 class Invoice { /*......*/ } //2.没有类体时 cl
阅读全文
摘要:1.对于数字的定义,支持java 8的下划线分割的方式 val a = 1_2_3 与 val a = 123 是相同的 2.如果要指定数字类型有两种方式 val a : Float = 1 或者 val a = 1f 3.kotlin没有隐式拓宽转换 val i = 1 val d = 1.1 v
阅读全文

浙公网安备 33010602011771号