首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin | 一份10万字随查笔记,妈妈再也不担心我不会Ctrl+F了

(对于类来说) 伴生对象成员类似 Java 静态成员 Kotlin,静态成员考虑用包级函数,包级变量替代 JvmField 和 JvmStatic 使用 Kotlin-- class Demo...{ newList.add(it*2) } newList.forEach(::println) map (用于集合映射,还可以用于集合转换) val list...几类函数调用 包级函数:静态方法 java里并没有这种函数,它在编译时候,会为Kotlin生成一个类,这个类包含了所有包级函数,java看来,这些都只是静态方法,所以java调用时候,按照静态按方法调用即可...协变与逆变 out/in ArrayList 没有Raw 类型 java List-> KotlinList Kotlin-重构篇-更加接近实际应用 类和接口...艺术探索 , 99 Nothing 在你判断逻辑,充当永远不可能调用哪一,比如你有一个when选择语句,就可以使用Nothing作为你else返回。

2.6K20

Spring认证中国教育管理中心-Spring Data MongoDB教程十三

Kotlin 对象创建 Kotlin 类支持实例化,默认情况下所有类都是不可变,并且需要显式属性声明来定义可变属性。...Kotlin 数据类属性填充 Kotlin ,默认情况下所有类都是不可变,并且需要明确属性声明来定义可变属性。...查询和更新时MongoTemplate将使用转换器来处理与上述保存文档规则相对应Query和Update对象转换,因此查询中使用字段名称和类型将能够匹配域类内容。...@Transient: 默认情况下,所有字段都映射到文档。此注释将应用它字段排除在数据库。瞬态属性不能在持久性构造函数中使用,因为转换器无法实现构造函数参数值。...它们是类级别而不是单个属性上定义。 复合索引对于提高涉及多个字段条件查询性能非常重要 这是一个lastName以升序和age降序创建复合索引示例: 示例 185.

2.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin 使用高阶函数处理集合数据

本文将介绍如何使用 Kotlin 高阶函数,如sumBy, reduce, fold, map,filter,forEach 等,来应对常见集合数据处理场景。...也就是说,sumBy场景无法用reduce代替。 那 Kotlin 有没有能指定acc类型高阶函数?有的,它叫fold。...得益于范型,我们可以通过这个办法来指定acc类型。这样一来,fold可以完美替代sumBy场景。而相比fold,sumBy更专用,表意更清晰,写起来也更简洁。...fold还有另一点好:因为acc由传入参数初始化,所以没有集合不能为空限制。所以绝大部分情况下,我都建议使用fold来代替reduce。...所以Kotlin 高阶函数用 inline 关键字修饰,所以 lambda 不会生成新 jvm class。而我们声明自己高阶函数时,也应该用inline关键字修饰,防止类数量膨胀。

2.5K10

利用Kotlin Tools如何快速添加Kotlin依赖详解

自此Kotlin成为了Android开发又一官方支持语言,当然这并不表明Google 已经放弃了对Java 语言支持。...Kotlin语法特点中,有较为明显函数式编程特征,包括一些较为优雅LAMBDA表达式、自由类型声明与转换等特性,而不再受限于有时臃肿完全面向对象语法,因此比JAVA简洁同时,可以较好地兼容现有的...点击 Browse respositories 并在打开窗口查询输入框输入 Kotlin,找到Kotlin插件 ?...博主已经安装,如果没有安装的话,右侧说明文档,会有一个install按钮,点击后,静静等一会,安装完成后会重启IDEA 或Android studio。...依赖 加入js项目 Configure Kotlin Plugin Updates 更新Kotlin插件 Show Kotlin ByteCode 显示Kotlin字节码 ,其实就是Class文件

1.3K10

AndroidAndroidStudio&Kotlin安装到运行过程及常见问题汇总

系统运行,最低兼容版本意味着比他低版本下无法运行该程序。...4.更新SDK 由于建立工程时候我们并没有管SDK事儿,所以需要安装一个SDK。点击SDK Manager ? 进入 ? 勾选自己需要版本SDK,点击右下方 ? 待安装完毕后重启即可。...修改对应官网url地址并Sync Now就可以更新到任一版本Gradle,要更新到最新版本,管网内找到最新版本即可。...5.2更新Kotlin插件 更新Kotlin插件只需要依次点击 File- Setting- Plugins- 搜索栏输入Kotlin- 点击install即可 ?...我们做好以上设置以后,代码区随意写一些东西或者不写也可以,点击 ? 没有运行时候是个三角形就可以运行程序啦,运行成功后显示以下界面!! ? olaolaolaolaola!!!

1.4K10

Kotlin 极简教程 》第5章 集合类(1)

5.2 Kotlin 集合类简介 集合类存放都是对象引用,而非对象本身,我们通常说集合对象指的是集合对象引用(reference)。...MutableList,除了继承List那些函数外,另外新增了add/addAll、remove/removeAll/removeAt、set、clear、retainAll等更新修改操作函数...-> Boolean): T 返回符合条件单个元素,如有没有符合抛异常NoSuchElementException,或超过一个抛异常IllegalArgumentException。...对应针对异常处理函数singleOrNull: 返回符合条件单个元素,如有没有符合或超过一个,返回null >>> list.singleOrNull({it==7}) null >>> list.singleOrNull...Kotlin没有单独去实现一套HashSet、TreeSet和LinkedHashSet。如果我们实际开发过程,需要用到这些Set, 就可以直接用上面的方法。

2.7K20

Kotlin学习笔记之const val与val

const使用 const 必须修饰val const 只允许top-level级别和object声明,使用方式如下: const val THOUSAND = 1000 object myObject...const val constNameCompanionObject: String = "constNameCompanionObject" } } const val和val区别: 说到这,我们还是没有搞清楚...constObject: String = "constObject" val normalObject: String = "normalObject" } 打开Android studio 点击 Tools- Kotlin...附:Kotlinvar和val区别 Kotlin中有两个关键字定义变量,这两个关键字外形看着差别很小就只差了一个字母,但实际差别很大。...var是一个可变变量,这是一个可以通过重新分配来更改为另一个值变量。这种声明变量方式和java声明变量方式一样。 val是一个只读变量,这种声明变量方式相当于javafinal变量。

1.4K10

Kotlin 轻量级Android开发

强类型:我们很少需要在代码中指定类型,因为编译器可以绝大多数情况下推断出变量或是函数返回值类型。这样就能获得两个好处:简洁与安全。...语法糖 类简化,隐式getter()、setter() 接口默认实现 lambda与高阶函数 空指针安全,编译时期空指针检查 流式集合操作 map(), forEach() 新特性 函数拓展、...: "" 数据类data Java,如果想要创建数据类或是POJO类(只保存了一些状态类),我们需要创建一个拥有大量字段、getters与setters类,也许还要提供toString...其中之一就是拥有单个方法接口与lambda表达式之间映射。...map(), forEach() 流式集合操作符,算是很普遍了,任何语言里都有,然而不支持函数式的话,写起来比较臃肿。

90910

Kotlin 集合使用详细解析

plus (+) 和 minus (-) 操作符 Kotlin ,为集合定义了 plus (+) 和 minus (-) 操作符。...Kotlin 集合提供了一套从集合检索单个元素函数。...12.1、常用聚合操作函数 Kotlin 集合包含用于常用 聚合操作 (基于集合内容返回单个操作)函数 。...右边是单个元素时,会移除它第一个匹配。 如果它是一个集合,那么它所有元素每次出现都会删除。 例如,如果列表包含重复元素,它们将被同时删除。 第二个操作数可以包含集合不存在元素。...它们 List 相关操作与 Map 相关操作中有所描述。 对于 set 来说,更新没有意义,因为它实际上是移除一个元素并添加另一个元素。

4K00

《Kotin 极简教程》第10章 Kotlin与Java互操作

substring(1) 这样,运行时候不会抛出异常,直接安静返回null。 平台类型 平台类型不能在程序显式表述,因此语言中没有相应语法。...集合类型 Kotlin 可以是只读或可变,因此 Java 集合类型作如下映射: (下表所有 Kotlin 类型都在 kotlin.collections包): Java 类型 Kotlin...大多数情况下,这些接口只有单个抽象方法(single abstract method),Java中被称为SAM类型。...我们使用 @JvmField 注解对Kotlin属性字段标注,表示这是一个实例字段(Instance Fields),Kotlin编译器处理时候,将不会给这个字段生成getters/setters...另外,IDEA,我们可以直接使用Kotlin插件来直接进行Java代码与Kotlin代码之间转换(虽然,有些情况下需要我们手工再去稍作改动)。

1.8K20

Spring认证中国教育管理中心-Spring Data MongoDB教程十五

Spring Data MongoDB 使用@Sharded注释来标识存储分片集合实体,如下所示。...启用了分片数据库中分片集合。 指定分片键。此示例使用基于范围分片。 19.2.分片键处理 分片键由一个或多个属性组成,这些属性必须存在于目标集合每个文档。它用于跨分片分发文档。...这意味着本质上添加所需分片键信息(如果尚不存在)以replaceOne更新实体时过滤查询。这可能需要额外服务器往返来确定当前分片键实际值。... Maven pom.xml 添加依赖 org.jetbrains.kotlinx kotlinx-coroutines-core...JMX 支持 MongoDB JMX 支持公开了单个 MongoDB 服务器实例管理数据库上运行“serverStatus”命令结果。

2.3K30

第7章 集合类第7章 集合

Kotlin没有去重复造轮子(Scala则是自己实现了一套集合类框架),而是Java 类库基础上进行了改造和扩展,引入了不可变集合类,同时扩展了大量方便实用功能,这些功能API 都在 kotlin.collections...另外,Kotlin集合类不仅仅能持有普通对象,而且能够持有函数类型变量。...Set 集 Set 集是最简单一种集合,它对象不按特定方式排序,只是简单把对象加入集合,就像往口袋里放一堆溜溜弹珠。 Set 集中没有重复对象。...7.1.2 Kotlin 集合类继承层次 下面是 Kotlin 集合接口类图 ? Kotlin 集合类继承层次 其中各个接口说明如下表所示 接口 功能 Iterable 父类。...Set 集合类图 KotlinMap与List、Set一样,Map也分为只读Map和可变 MutableMap(可写入删除数据)。Map没有继承于Collection接口。其类图结构如下 ?

1.2K20

Kotlin实战【一】Kotlin定义与目的

: 0 } kotlinString拼接方式 相当于String s = "aaa"+"bbb"+"ccc" "The oldest is: $oldest" 有没有开始喜欢kotlin了,...(2)Kotlin 还可以编译成 JavaScript,允许你浏览器运行 Kotlin 代码。...熟悉RxJava和java8童鞋应该有所感受。 (2)安全:多线程程序中最大错误来源之一就是,没有采用适当同步机制情况下不同线程上修改同一份数据。...lambda 表达式,让你用最少样板代码方便地传递代码块 数据类,提供了创建不可变值对象简明语法 标准库包括了丰富 API 集合,让你用函数式编程风格操作对象和集合 Kotlin 允许你使用函数式编程风格但并没有强制你使用它...代码对他们调用也会得到更新 - 重构kotlin方法时候,java代码对他们调用也会得到更新 四、Kotlin编译过程 Kotlin源代码存放在后缀名为.kt文件

91330

Kotlin 编码规约

Kotlin 项目中,推荐目录结构遵循省略了公共根包包结构(例如,如果项目中所有代码都位于“org.example.kotlin”包及其子包,那么“org.example.kotlin”包文件应该直接放在源代码根目录下...如果打算在外部使用嵌套类,而且类没有引用这些类,那么把它们放到末尾,伴生对象之后。...格式化 大多数情况下Kotlin 遵循 Java 编码规范。 使用 4 个空格缩进。不要使用 tab。 对于花括号,将左花括号放在结构起始处行尾,而将右花括号放在与左括结构横向对齐单独一行。...理由:这确保了主构造函数声明属性与 类体声明属性具有相同缩进。...Lambda 表达式格式化 lambda 表达式,应该在花括号左右以及分隔参数与代码体箭头左右留空格。如果一个调用接受单个 lambda 表达式,应该尽可能将其放在圆括号外边传入。

3K22

MyBatis框架使用解析!数据库相关API基本介绍

,这些逗号是使用条件语句给列赋值时引入 foreach集合进行遍历时候使用foreach, 特别是构建IN条件语句时候 #{item} foreach允许指定一个集合: 声明可以元素体内使用集合...item和索引index变量 指定开头open与结尾close字符串以及集合迭代之间分隔符separator foreach不会错误地添加多余分隔符 使用foreach时: 可以将任何可迭代对象...不会自动提交事务,除非发现到调用了插入,更新或删除方法改变了数据库 如果没有使用这些方法提交修改,那么就可以commit和rollback方法参数传入true值来保证事务被正常提交 注意: 自动提交模式或者使用了外部事务管理器情况下...,设置force值对session无效 大部分情况下,无需调用rollback(), 因为MyBatis会在没有调用commit() 时完成回滚操作 但是,当要在一个可能多次提交或回滚session详细控制事务

73220

ColyseusJS 轻量级多人游戏服务器开发框架 - 中文手册(下)

数据过滤器是每个客户端和每个字段(或每个子结构, @filterChildren 情况下)都会触发回调。...它签名与 @filter() 非常相似,只是 value 之前增加了 key 参数 — 表示 ArraySchema、MapSchema、CollectionSchema 等每一。...了解如何将一维数组用作多维数组 Arrays 和 Maps 必须都是同一类型实例。 @colyseus/schema 只按照指定顺序编码字段值。...每当 primitive 类型(string, number, boolean等)集合更新一些值时,这个回调就会被触发。...每一段都需要有自己一页,有详尽例子和更好解释。 保持你 room 类尽可能小,没有游戏逻辑 使可同步数据结构尽可能小 理想情况下,扩展 Schema 每个类应该只有字段定义。

2.5K20

Kotlin入门(16)容器遍历方式

初始化赋值 : Kotlin允许声明容器变量之时进行初始赋值,这点很方便比Java先进,当然不同容器初始化方法有所区别,具体对应关系见下表: 只读集合Set    setOf 可变集合    ...add方法仅仅往集合添加元素,由于集合是无序,因此不知道添加具体位置; 2、MutableSet没有修改元素值方法,一个元素一旦被添加,就不可被修改; 3、MutableSetremove...方法用于删除指定对象,但无法删除某个位置元素,这是因为集合元素不是按顺序排列; 对于集合遍历操作,Kotlin提供了好几种方式,有熟悉for循环,有迭代器循环,还有新面孔forEach循环,...,我们发现集合在实战存在诸多不足,主要包括以下几点: 1、集合不允许修改内部元素值; 2、集合无法删除指定位置元素; 3、不能通过下标获取指定位置元素; 鉴于集合以上缺点难以克服,故而实际开发基本用不到集合...方法初始化映射之时,有两种方式可以表达单个键值对元素。

2.3K20
领券