Kotlin
文章平均质量分 93
kotlin基础知识和常用知识点
Mr YiRan
星光不问赶路人,时间不负有心人,前程似锦,未来可期!
展开
-
Kotlin中常见的List使用
find和findLast函数返回与给定条件匹配的第一个或最后一个集合元素。在列表中,都可以使用indexOf() 或者lastIndexOf() 查询到元素在集合中的位置。node:如果集合中没有符合匹配条件的元素,返回true,否则返回false。我们注意到,截取后的集合,也是按照我们传入的下标顺序进行获取的。count函数返回集合中的元素总数或与给定条件匹配的元素数。这些函数检查是否存在与给定条件匹配的集合元素,并返回布尔值。该函数返回具有给定索引的集合元素列表。返回列表中第一个或最后一个元素的值。原创 2023-11-27 11:15:26 · 1602 阅读 · 0 评论 -
Kotlin之使用DSL构建专有的语法结构
由于< tr >标签表示表格的行,它是可以包含多个< td >标签的,因此我们创建了一个children集合,用于存储当前Tr所包含的Td对象。可以看到,dependencies函数接收一个函数类型参数,并且该参数是定义到Dependency类当中的,因此调用它的时候需要先创建一个Dependency的实例,然后再通过该实例调用函数类型参数,这样传入的Lambda表达式就能得到执行了。另外,Tr类中也定义了一个html()方法,它的作用和刚才Td类当中的html()方法一致。原创 2023-01-29 21:28:16 · 890 阅读 · 0 评论 -
Kotlin中的Lambda编程
1.集合的创建与遍历传统意义上的集合主要是List和Set,再广泛一点的话,像Map这样的键值对数据结构也可以包含进来。List,Set和Map再Java中都是接口,List主要的实现类是ArrayList和LinkedList,Set的主要实现类是HashSet,Map的主要实现类的HashMap。比如现在创建一个包含许多水果名称的集合,在java中我们会首先创建一个ArrayList的实例,然后将水果的名称一个个添加到集合中。在kotlin也可以这么做。原创 2023-01-14 16:46:56 · 994 阅读 · 0 评论 -
Kotlin之编写工具方法
Kotlin提供的丰富的语法特性给我们提供了无限扩展的可能,各种复杂的API经过特定的封装处理之后都能变得简单易用。两个数比大小这个功能,如果我想要获取两个数中较大的那个数,除了使用最基本的if语句之外,还可以借助Kotlin内置的max函数,如下所示:原创 2023-01-11 20:20:50 · 635 阅读 · 0 评论 -
Kotlin之使用协程编写高效的并发程序
协程属于Kotlin中非常有特色的一项技术,因为大部分编程语言中是没有协程这个概念的。那么什么是协程呢?它其实和线程有点相似,可以简单地将它理解成**一种轻量级的线程**。我们之前学习的**线程是重量级的,它需要依靠操作系统的调度才能实现不同线程之间的切换,而使用协程却可以仅在编程语言的层面就能实现不同协程之间的切换**,从而大大提示了并发编程的运行效率。比如我们有如下foo()和bar()方法:原创 2023-01-09 23:42:04 · 1018 阅读 · 0 评论 -
Kotlin之泛型的高级特性
Kotlin泛型中的基本用法和Java中的泛型用法是大致相同的,因此也比较好理解。然而实际上,Kotlin在泛型方面还提供了不少特有的功能,接下来将进行介绍。泛型实化这个功能对于绝大多数Java程序员来讲是非常陌生的,因为Java中完全没有这个概念。而如果我们想要深刻地理解泛型实化,就要先解释一下Java的泛型擦除机制才行。Java的泛型功能是通过类型擦除机制来实现的。什么意思呢?就是说泛型对于类型的约束只在编译时期存在,运行的时候仍然会按照JDK1.5之前的机制来运行,JVM是识别不出我们原创 2023-01-02 22:58:21 · 247 阅读 · 0 评论 -
Kotlin之使用infix函数构建更可读的语法
我们在Kotlin中就多次使用A to B这样的语法结构构建键值对,包括Kotlin自带的mapOf()函数,这种语法结构的优点是可读性强。那么这种功能是怎么实现的?to是不是Kotlin语言中的一个关键字?本章我们来对这个功能进行解密。首先,to并不是Kotlin语言中的一个关键字,之所以我们能使用A to B这样的语法结构,是因为**Kotlin提供了一种高级语法糖特性:infix函数**。infix函数只是把编程语言函数调用的语法规则调整了一些而已,比如A to B这样的写法,实际上等价于A.to(原创 2022-12-21 22:56:02 · 848 阅读 · 0 评论 -
kotlin基础之泛型和委托
泛型的基本用法,类委托和委托属性和实现一个自己的lazy函数原创 2022-12-18 12:07:01 · 200 阅读 · 0 评论 -
Kotlin之高阶函数的应用
高阶函数非常适用于简化各种API的调用,一些API的原有方法在使用高阶函数简化之后,不管在易用性还是可读性方面,都有所提升。为了举例说明,我们会在本节里使用高阶函数简化Android存储中的SharedPreferences和ContentValues这两种API的用法,让他们变得更加简单。原创 2022-12-14 13:40:43 · 345 阅读 · 0 评论 -
Kotlin之高阶函数
高阶函数和Lambda的关系密不可分。在Lambda编程的基础知识,使用的一些与集合相关的函数式API用法,如map、filter函数等。又比如Kotlin的标准函数,如run、apply函数等,这几个函数都有一个共同的特点:他们都会传入一个Lambda表达式作为参数。像这种接收Lambda参数的函数就可以称为具有函数式编程风格的API,而如果你想定义自己的函数式API,那就需要借助高阶函数来实现了。高阶函数的定义:如果一个函数接收另一个函数作为参数,或者返回值的类型是另一个函数,那么该函数就称为高阶函数原创 2022-12-12 13:59:56 · 7007 阅读 · 0 评论 -
Kotlin扩展函数和运算符重载
不少现代高级编程语言中有扩展函数这个概念,Java却一直以来都不支持这个功能,Kotlin对扩展函数有了很好的支持。扩展函数表示即使在不修改某个类的源码的情况下,仍然可以打开这个类,向该类添加新的函数。比如有一个功能:一段字符串中可能包含字母、数字和特殊符号等字符,现在我们希望统计字符串中字母的数量,要怎么实现这个功能?如果按照一般的编程思维,可能会很自然的写出如下函数:原创 2022-11-20 22:25:14 · 211 阅读 · 0 评论 -
kotlin延迟初始化和密封类
Kotlin语言有许多特性,包括变量不可变,变量不可为空,等等。这些特性都是为了尽可能地保证程序安全而设计的,但是有些时候这些特性也会在编码时给我们带来不少麻烦。比如,你的类中存在许多全局变量实例,为了保证他们能够满足kotlin的空指针检查语法标准,你不得不做出许多的非空判断保护才行,即使你非常确定它们不会为空。原创 2022-11-15 17:17:41 · 557 阅读 · 0 评论 -
Kotlin中的标准函数和静态方法
Kotlin中的标准函数with、run和apply和定义静态方法原创 2022-11-06 16:49:30 · 691 阅读 · 0 评论 -
Kotlin之空指针检查
一、可空类型系统二、判空辅助工具 三、let函数原创 2022-10-31 21:14:11 · 378 阅读 · 0 评论 -
Kotlin中的面向对象编程
一、类和对象二、继承与构造函数三、函数头和函数参数 四、接口 五、可见性修饰符六、数据类与单例类原创 2022-10-15 22:17:37 · 788 阅读 · 0 评论 -
Kotlin基础之变量
1.声明变量2.只读变量3.类型推断4.编译时常量5.表达式原创 2022-10-02 19:53:44 · 1332 阅读 · 0 评论