在实际的项目开发中,集合的运用可以说是多不胜数。不过Kotlin中的集合运用和Java中还是有很大的差别,他们两者之间,除了集合的类型相同以外,还包含集合的初始化的不同,以及Kotlin对于集合封装特别多的高阶函数以供我们能更简单、更快捷的编写代码。不过在讲解集合之前,我先会对Kotlin中的数组类型做出一个讲解,大家可以当做是对数组Array<T>的一个温故。目录一、数组类型在Kot
习语(Idioms)这篇文章是 Kotlin 中经常使用的 习语 的集合。创建 DTOs(POJOs/POCOs)data class Customer(val name: String, val email: String)这条语句创建了一个有如下特性的 Customer 类– 为所有属性创建 getters,如果 该属性是 var 的话,也创建 setters 属性 – equals()
转载 10月前
39阅读
  什么是KMMKMM的全称是:Kotlin Multiplatform Mobile,它是jetbrains公司的产品。是一个业务跨平台的移动端开发框架。在KMM的官网上,它对自己的最简明的一句介绍是:Share the logic of your iOS and Android apps while keeping the UX native用中文来理解就是:不同平台共享业务逻辑的同
函数 函数声明funfun double(x: Int): Int { } 函数用法 调用函数使用传统的方法val result = double(2) 调用成员函数使用点表示法Sample().foo() // 创建类 Sample 实例并调用 foo 中缀表示法 函数还可以用中缀表示法调用,当他们是成员函数或扩展函数 他们只有一个参数他们用 infix// 给 Int 定义扩展 i
1. 基础filter和map使用filter函数遍历集合并选出应用给定的lambda后返回true的那些元素例子: val list = listOf(1,2,3,4,5,6,7,8,9) // 只保留偶数 println(list.filter { it % 2 == 0 }) // 打印的到: [2, 4, 6, 8]map函数对集合中的每一个元素应用给定的函数并把结果收集到
转载 2024-09-23 19:21:20
62阅读
MutableMap委托变化是双向的,是一种可读写委托
转载 2021-08-13 09:48:26
173阅读
一. 接口1、 ) 接口的定义) 使用关键字 interface 来定义接口)Kotlin 接口的方式可以是抽象的,也可以提供默认的实现(即方法体是可选的))Kotlin接口的属性必须声明为抽象(不能初始化)或提供访问器实现。并且在接口中声明的属性不能有幕后字段(backing field),因此接口中声明的访问器不能引用field,var声明的可变变量的访问器依赖幕后字段。所以var属性只能是抽
转载 10月前
23阅读
常用高阶函数1、变换函数 map2、变换函数 flatMap3、过滤函数 filter4、合并函数 zip5、压缩 reduce6、折叠函数 fold7、全部代码 1、变换函数 map从Kotlin源码可知 map 函数就是对 Iterable<T> 的 扩展函数,作用就是将泛型T的集合变换成泛型R的集合public inline fun <T, R> Iterable&
转载 2024-03-19 16:55:06
111阅读
今天仔细的学习了下kotlin的集合,做了些笔记,都是源码注释也很详细。 kotlin为集合提供一些方便的方法大多都类似,我就写了些List的,注释非常详细/** * 记录一些好用的语句and方法 */ class KotlinFunActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle
转载 2024-07-10 18:08:00
76阅读
主要内容Map的创建方式1:to方式2:PairMap值的读取方式1:[] 找不到会返回null方式2:getOrDefault()方式3:getOrElse()方式4:getValue()相关代码Map集合遍历方式1:forEach方式2:forEach{ K,V -> }方式3:forEach{ (K,V) -> }方式4:for相关代码可变Map集合学习创建可变Map:muta
转载 2023-10-08 21:08:27
198阅读
1 .在Kotlin中创建集合val set= hashsetOf(1,5,6)val list = arrayListOf(1,6,45);val map = hashMapOf( 1 to "one",  5 to "five" ,53 to "fifty-three" )Kotlin 中JavaClass 等价于 Java的getClass()>>>printLn
转载 2024-09-22 09:58:48
38阅读
Kotlin杂谈系列七这节就主要谈谈kotlin内置的迭代器内部迭代器的优势: 避免的显示可变性的威胁 不会出现竞态条件的风险内部迭代器就是高阶函数 高阶函数用来提供通用的代码 而传进来的lambda表达式则是执行特定的任务主要的迭代器 filter()map()reduce()filter : 传进去的lambda的表达式作为条件 满足条件的留下 不满足的过滤掉val nums = listOf
Kotlin学习(4)Lambda2017年09月26日 21:00:03 gwt0425 阅读数:551 c记住Lambda的本质,还是一个对象。和JS,Python等不同的是,Kotlin里的Lambda不是方法,而是一个简化了的对象。此外,Kotlin里面的没有匿名函数这一说,函数也不是传统的对象。看看Kotlin的Lambda//Java button.se
转载 2024-09-12 19:33:34
27阅读
什么是函数式编程 函数式编程是于面向对象编程范式相齐名的一种编程方式,主要依赖于高阶函数返回的数据,这些高阶函数专用于处理各种集合,可方便的联合多个同类函数构建链式操作以创建复杂的计算行为。在Kotlin中支持多种编程范式, 有以下函数类别:变换transform、过滤filter、合并combine。变换 变换是函数式编程的第一大类函数,变换函数会遍历集合内容,用一个以值参的形式传入的变换器函数
kotlin中有一些常用的对集合进行操作的函数式API,掌握他们可以大大提高编程效率,这些API与java8中的 Stream API类似。下面主要讲解以下几大类1 filter 和 mapfilter主要用作过滤器(对集合元素),它的返回值也是一个集合,定义如下:public inline fun <T> Iterable<T>.filter(predicate: (T
转载 2024-03-21 11:00:47
109阅读
mapval list = listOf(1, 2, 3, 4) val map = list.map { it * 2 } 源码:定义了 map 的扩展函数 mapTo ,mapTo 接受两个参数,第一个参数类型是集合,第二个参数为一个方法  (transform: (T) -> R) ,最终返回一个集合,mapTo中将 tra
转载 2024-03-14 07:02:28
78阅读
 1. 引子话说,Kotlin 里面有两个语法用到了 by 这个关键字,一个是接口代理,一个是属性代理(不知道这俩东西是神马的,去 https://kotlincn.net 查官方文档)。你应该知道属性代理其实本质上就是用一个对象接管属性的 get/set 操作,这个东西可以用来实现一些 Observable 相关的操作,也可以用来封装简化一些复杂
转载 7月前
19阅读
        一个函数式应用通常由三大类函数构成:变换transform、过滤filters合并combineo每类函数都针对集合数据类型设计,目标是产生一个最终结果。函数式编程用到的函数生来都是可组合的,也就是说,你可以组合多个简单函数来构建复杂的计算行为。一.变换    &
转载 2024-07-14 07:03:35
82阅读
Android开发中,我们经常需要在Kotlin中使用Java库,尤其是当参数类型不一致时。这个问题在需将Kotlin的`MutableMap`传递给Java代码的场景中尤为突出。本文将深入探讨这个问题,为开发者提供清晰的解决方案。 ```mermaid flowchart TD A[用户场景:在Kotlin中创建并传递MutableMap到Java方法] --> B{是否兼容}
原创 5月前
23阅读
一、前言在 Kotlin 学习笔记之内置类型(1) 中我们已经讲了 Kotlin 内置类型中的基本类型、数组和区间,今天我们来讲 Kotlin 的集合框架和函数。二、Kotlin 的集合框架Kotlin 的集合有以下特点:增加了 “不可变” 集合框架的接口;复用了 Java API 的所有实现类型;提供了丰富易用的方法,例如 forEach/map/flatMap。2.1、与 Java 对比Kot
转载 2024-07-03 23:25:17
181阅读
  • 1
  • 2
  • 3
  • 4
  • 5