println("Source size: ${sourceList.size}") 1. 2. 3. 4. 集合的初始化可用于限制其可变性。例如,如果构建了一个 MutableList 的 List 引用,当你试图通 过此引用修改集合的时候,编译器会抛出错误 val sourceList = mutableListOf(1, 2, 3) val referenceList: List<Int> = sourceList //referenceList...
可以看到,容易出现异常的操作Kotlin会给出另一个安全调用的替代,如first与firstOrNull。 partition--根据判断条件是否成立,拆分成两个Pair; plus--合并两个List,可以用"+"替代; zip--两个集合按照下标组合成一个个的Pair塞到集合中返回; unzip--将包含多个Pair的List转换成含List的Pair; Pair对象的数据组成形式...
例如,我们可以像下面这样定义一个扩展函数,用于在RecyclerView中添加和移除数据: fun <T> RecyclerView.addItems(items: List<T>, adapter: RecyclerView.Adapter<*>) { val adapterItems = (adapter as BaseAdapter<T>).items adapterItems.addAll(items) adapter.notifyDataSetChanged() } fun <T> RecyclerView.r...
Kotlin作为一门全新的语言,肯定还是要有自己的容器类,不然哪天Java跟Kotlin划清界限,那麻烦就大了。 Kotlin也拥有三类基本的容器,分别是集合Set、队列List、映射Map,每种容器又分作只读与可变两种类型这是为了判断该容器能否进行增删改等变更操作。 Kotlin数组 Kotlin集合 Kotlin数组 数组是一种初始化时指定容器大小,...
扩展函数是Kotlin中的一种特殊函数,它允许我们向一个类添加新的函数,而无需继承或修改这个类的源代码。扩展函数的语法非常简单,只需要在函数名前面加上类名,并用点号隔开即可。 例如,我们可以向Kotlin中的String类添加一个新的函数,用于反转字符串: funString.reverse():String{returnthis.reversed()} ...
Android Kotlin 底部菜单栏(三) LoginSuccessActivity布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width=...
使用kotlin-coroutines中的 Flow,定义返回数据类型,是为了观察数据变化情况,当数据发生变化时,Room 会更新Flow。 5. 添加 Room 数据库 Room 数据库类必须是抽象的,必须扩展RoomDatabase,整个应用通常只需要一个 Room 数据库实例。 WordRoomDatabase 定义: ...
在Kotlin 中没有实现和 Java 一样的 List 集合,而是使用了和 Java 一样的 ArrayList 集合。Kotlin 中提供了以下四种函数方法来使用 ArrayList,分别是 1、listOf() 2、listOfNotNull() 3、mutableListOf() 4、arraylistOf() 其中最主要的区别为可变的集合与不可变的集合。listOf()、listOfNotNull() 为不可变...
和函数类似, Kotlin 也支持属性扩展: val <T> List<T>.lastIndex: Int get() = size-1 注意,由于扩展并不会真正给类添加了成员属性,因此也没有办法让扩展属性拥有 一个备份字段.这也是为什么初始化函数不允许有扩展属性。扩展属性只能够通过明 确提供 getter 和 setter方法来进行定义. ...
此外,相关类型(如 UIntArray, UShortArray, ULongArray, UByteArray)还受 Kotlin 的影响。 方法名称将更改为包含附加后缀,并将参数更改为同一类型的带符号版本元素数组。 在下面的示例中,类型 UIntArray 的参数会自动转换为 int[],且方法名称从 fooUIntArrayMethod 更改为 fooUIntArrayMethod--ajY-9A。 后者是通...