1.java代码如下: 可以看到写起来非常繁琐,用kotlin的高阶函数,则可以简化称如下: 2.kotlin高阶...[作者空间]
1.代码 2.总结 任意类型都有run扩展函数 run函数参数是带接受者的函数 接收者是调用者本身 run函数返回...[作者空间]
1.代码如下: 总结: with是独立的函数 可以任意地方使用 with函数需要接收两个参数 第一个参数可以接收任...[作者空间]
1.代码写法如下: 任意对象都有let扩展函数 let函数参数也是一个函数,不带字面值接收值 函数参数它的参数是调...[作者空间]
1.apply函数 源码分析阶段 image.png可以看到apply函数是任何对象上扩展函数,不一样的是,blo...[作者空间]
1.用法如下: 2.集合重新组合 3.集合相加[作者空间]
1.集合过滤 2.集合排序 sortedBy的实现如下: image.png可以看到sortedBy是一个Iter...[作者空间]
1.lambda单独存在 2.通过变量保存lambda表达式 3.lambda表达式的返回值 lambda表达式的...[作者空间]
1.写法如下: 两个冒号::获取函数的引用 如果函数里面传递函数参数的话,就称为高阶函数 2.lambda 函数的...[作者空间]
1.一个函数返回了一个内部函数,该内部函数引用了外部函数相关的参数和变量,我们把该返回的内部函数称为闭包 2.在k...[作者空间]
1.也是有三种方法,与创建list和set集合类似 2.map的四种遍历方式[作者空间]
1. 创建固定的只读集合 2.创建可读可修改的元素 3.创建java中的set集合[作者空间]
1.创建固定元素个数的list集合 listof()简单方法创建的list集合不能添加,不能修改元素,是一个只读的...[作者空间]
1.用法代码如下: 2.输出结果如下: 密封类封装的是类型 类型是确定的 枚举封装的是数据,表示数据元素个数是确定的[作者空间]
1.写法如下 2.看下转换后的java代码 3.数据类的访问[作者空间]
1.简单用法 运行结果如下: 2.高级用法 枚举也可以定义构造函数[作者空间]
1.语法如下: 2.实现和java一样的单例 惰性加载,只会加载一次,线程安全[作者空间]
1.内存中只有只有一个对象实例 2.提供类一种创建对象的最佳方式 3.object单例代码如下 4.通过生成的sh...[作者空间]
1.写法如下: 对于扩展的函数sayHello子类不能覆写[作者空间]
1.在不改变已有类的情况下,为类添加新的函数 2.扩展函数主要是替代java的util类 3.扩展非空类型的Str...[作者空间]