发布了文章2021-07-26
高阶函数和 Lambda 的关系是密不可分的。在第 2 章快速入门 Kotlin 编程的时候,我们已经学习了 Lambda 编程的基础知识,并且掌握了一些与集合相关的函数式 API 的用法,如 map、filter 函数等。另外,在第 3 章的 Kotlin 课堂中,我们又学习了 Kotlin 的标准函数,...
发布了文章2021-07-25
不少现代高级编程语言中有扩展函数这个概念,Java 却一直以来都不支持这个非常有用的功能,这多少会让人有些遗憾。但值得高兴的是,Kotlin 对扩展函数进行了很好的支持,因此这个知识点是我们无论如何都不能错过的。
发布了文章2021-07-24
前面我们已经学习了 Kotlin 语言的许多特性,包括变量不可变,变量不可为空,等等。这些特性都是为了尽可能地保证程序安全而设计的,但是有些时候这些特性也会在编码时给我们带来不少的麻烦。
发布了文章2021-07-23
with 函数接收两个参数:第一个参数可以是一个任意类型的对象,第二个参数是一个 Lambda 表达式。with 函数会在 Lambda 表达式中提供第一个参数对象的上下文,并使用 Lambda 表达式中的最后一行代码作为返回值返回。示例代码如下:
发布了文章2021-07-22
简单概括一下,就是将事物封装成具体的类,然后将事物所拥有的属性和能力分别定义成类中的字段和函数,接下来对类进行实例化,再根据具体的编程需求调用类中的字段和方法即可。
发布了文章2021-06-21
由于 MVP、MVVM、组件化架构的兴起,MVC 架构在 android 中的应用变得越来越少,但 MVC 是基础,理解好 MVC 才能更好的理解 MVP,MVVM,因为后两种都是基于 MVC 发展而来的。
发布了文章2021-06-17
众所周知,我们在 Android Studio 是使用 Gradle 来编译的,Gradle 是一种基于 Groovy 语言的构建工具,我们平时看到的 build.gradle 中的语法结构其实就是 Groovy 提供的 DSL 功能。
发布了文章2021-06-17
在 Android 项目中,基本上都会有列表功能,而现在的列表功能都是通过 RecyclerView 实现的,当项目中列表功能比较多的时候,每一个 RecyclerView 都需要一个 Adapter 适配器,这样会使得项目中的 Adapter 类非常的多。所以,封装一个万能的 RecyclerView 适配器是可...
发布了文章2021-06-17
在过去,Android 应用程序的界面主要是通过编写 XML 的方式来实现的。写 XML 的好处是,我们不仅能够了解界面背后的实现原理,而且编写出来的界面还可以具备很好的屏幕适配性。等你完全掌握了使用 XML 来编写界面的方法之后,不管是进行高复杂度的界面实现,还是分析...
发布了文章2021-06-17
我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。其...
发布了文章2021-01-17
<font face= 黑体>只需要在一个普通类的前面加一个 data,普通类就变成了数据类了,可以将它和 Java 的 JavaBean 做类比,如下:
发布了文章2021-01-17
<font face= 黑体>在 Kotlin 集合的变换与聚合 中我们已经将 Kotlin 的 集合变换与聚合 讲完了,我们都知道集合源码中用到了很多泛型的知识,所以我们今天我们来讲 Kotlin 的 泛型。
发布了文章2021-01-15
<font face= 黑体>在 Kotlin 高阶函数与内联函数 中我们已经将 Kotlin 的 高阶函数 和 内联函数 讲完了,今天我们来讲 Kotlin 的 集合变换与聚合。
发布了文章2021-01-15
<font face= 黑体>高阶函数就是参数类型包含函数类型或者返回值类型是函数类型的函数,简单的说,高阶函数就是函数里面套函数,如下所示:
发布了文章2021-01-13
一、前言<font face= 黑体>在 Kotlin 中的类与接口 和 Kotlin 空类型安全与智能类型转换 中我们已经将 Kotlin 中的类型初步讲完了,今天我们来讲 Kotlin中的表达式。二、分支表达式2.1、if else 表达式Kotlin: {代码...} <font face= 黑体>上面代码可以...
发布了文章2021-01-12
<font face= 黑体>在 Kotlin 中的类与接口 中我们已经讲了 Kotlin 的 类、接口 和 扩展方法,今天我们来讲 Kotlin 中的 空类型安全 和 智能类型转换。
发布了文章2021-01-12
一、前言<font face= 黑体>在 Kotlin 学习笔记之内置类型(1)和 Kotlin 学习笔记之内置类型(2)中我们已经讲了 Kotlin 内置类型中的基本类型、数组、区间、集合框架和函数。二、Kotlin 中的类和接口2.1、类的定义Java: {代码...} Kotlin:<font face= 黑体...
发布了文章2021-01-12
<font face= 黑体>在 Kotlin 学习笔记之内置类型(1) 中我们已经讲了 Kotlin 内置类型中的基本类型、数组和区间,今天我们来讲 Kotlin 的集合框架和函数。
发布了文章2021-01-12
一、基本类型1.1、与 Java 对比<font face= 黑体>我们来看一下 Kotlin 的基本类型与 Java 的区别,具体如下表所示: KotlinJava字节Bytebyte/Byte整型Int & Longint/Integer & long/Long浮点型Float & Doublefloat/Float & double/Double字符C...
发布了文章2021-01-12
<font face=黑体>插入排序是一个时间复杂度为 O(n^2) 的排序算法,所以当 n 增大 10 倍的时候,排序所需时间差不多差不多增加了 100 倍,运行结果如下所示: