例如,Scala有一个官方的页面,在List、Array和ArrayBuffer等集合中显示apply()(Java中的get)、insert()和append()等方法的时间复杂性。然而,我在Kotlin中找不到这样的信息。Kotlinstdlib API页面也没有这样的信息。更糟糕的是,除非我深入研究源代码,否则我无法获得关于 (由创建)的底层实现的信息。那么,Kotlin中的Li...
val list = listOf("Apple", "Banana", "Pear", "Orange") val builder = StringBuilder() builder.append("start eating fruits.\n") for (fruit in list) { builder.append(fruit).append("\n") } builder.append("Ate all fruits.") val result = builder.toString() println(result) 1. 2. 3...
使用add方法:对于可变集合,可以使用add方法将元素添加到集合中。例如,如果有一个可变列表list,可以使用list.add(element)将元素添加到列表中。 使用addAll方法:对于可变集合,可以使用addAll方法将另一个集合中的所有元素添加到目标集合中。例如,如果有一个可变列表list1和另一个集合list2,可以使用list1.addAll(list...
val list = ArrayList<String>() // 非空(构造函数结果) list.add("Item") val size = list.size // 非空(原生 int) val item = list[0] // 推断为平台类型(普通 Java 对象) 1. 2. 3. 4. 当我们调用平台类型变量的方法时,Kotlin 不会在编译时报告可空性错误, 但在运行时调用可能会失败,因为...
val strings=listOf("first","second","fourteenth")println(strings.last())val numbers=setOf(1,14,2)println(numbers.max())//输出fourteenth14 或许你应该知道last()和max()在Java的集合类中并不存在,这应该是Kotlin自己扩展的方法,可以你要知道上面我们打印出来的类型明确是Java中的集合类,但在这里调用方...
println(strings.flatMap { it.toList() }) // 结果 [a, b, c, d, e, f] 序列 许多链式集合函数调用,比如map和filter,会及早地创建中间集合,也就是每一步的中间结果都被存储在一个临时列表。序列可以便面创建这些临时中间对象。 Kotlin惰性集合操作的入口就是Sequence接口。这个接口表示的就是一个可以逐个...
* Now, you can apply it to callable references. */ fun main(args: Array<String>) { val oddLength = compose(::isOdd, ::length) val strings = listOf("a", "ab", "abc") println(strings.filter(oddLength)) println(strings.filter(::hasA)) println(strings.filter(::hasB)) val hasB...
sb.append(postfix) return sb.toString() } 调用joinToString方法可以这样 val list = arrayListOf("a", "b", "c") val s = joinToString(list, postfix = ")", separator = ",", prefix = "(")println("s = $s") 上述即是命名参数,在调用处使用,形式为:参数名=参数值; ...
classMyClass<T>(varargitems: T) {privatevallist = items.toMutableList()funaddItem(item:T){ list.add(item) }funremoveItem(item:T){ list.remove(item) }fungetItem(index:Int): T {returnlist[index] } } 在上面的例子中,MyClass是一个泛型类,使用尖括号<T>定义了一个类型参数 T。在这个类中...
implicitReceivers- a list of script types that is assumed to be implicit receivers for the script body, as if the script is wrapped intowithexpressions, in the order from outer to inner scope, i.e.: with(receiver0) {...with(receiverN) {<script body>} } ...