// snippet 1 // 数组是协变的, String[] 是 Object 的子类 Object [] objects = new String[10] objects[1] = 1 虽然协变会引起一些不能在编译时就发现的明显错误, 但是在 Java 一直到 Java 5 才引入了泛型. 如果数组不支持协变, 很多方法就没有办法实现了. 比如 Arrays.sort(Ojbect[] array)这...
fun move(movable: Movable): String } class Car(_name: String, override var wheels: Int = 4) : Movable { override var maxSpeed: Int get() = super.maxSpeed set(max) { } override fun move(movable: Movable): String { println("数据一下") return "数据一下" } } 1. 2. 3. 4. 5....
fun main() { myFun("aa", "bb", "cc") // 打印: 3 } fun myFun(vararg parms: String) { var arr: Array<out String> = parms println(arr.size) } 7.3 将数组传给可变长参数函数 fun main() { var arr: Array<String> = arrayOf("aa", "bb", "cc") myFun(*arr) // 打印: 3 ...
这意味着 Kotlin 不让我们把 Array<String> 赋值给 Array<Any>,以防止可能的运行时失败(但是你可以使用 Array<out Any>。 Kotlin 也有无装箱开销的专门的类来表示原生类型数组,这些原生类型数组如下: BooleanArray — Boolean类型数组 ByteArray — Byte类型数组 ShortArray — Short类型数组 IntArray...
KPerson(val name: String, val age: Int, val sex: Int) fun main(args: Array<String>)...
在函数内部,vararg参数ts是作为一个T类型元素的数组对象,它的类型是Array<out T>。 一个函数中仅能有一个参数被标记为vararg,如果vararg参数不是作为函数参数列表的最后一个参数存在,则需要使用具名参数的形式给所有参数传值,因此最好是将vararg参数放至最后。如果参数类型是「函数类型」,可以在圆括号外传递 lambda...
即StringIndexOutOfBoundsException异常 2.2、用subSequence()函数截取 在Kotlin中除了使用上面讲解到的使用subString()截取字符串外,还可以使用subSequence()函数截取。 我们看一看其源码实现: public fun subSequence(startIndex: Int, endIndex: Int): CharSequence public fun CharSequence.subSequence(range: IntRange)...
public inline fun <T> Array<out T>.forEach(action: (T) -> Unit): Unit { for (element in this) action(element) } 1. 运算符重载与中缀表达式 运算符重载 fun main(args: Array<String>) { val point2 = Point(1, 2) + Point(3, 4) println(point2) } class Point(val x: Int, val...
① Kotlin 中数组是不型变的(invariant),意味着 Kotlin 不让我们把 Array<String> 赋值给 Array<Any>,但可以使用 Array<out Any>,参见类型投影; ② Kotlin 中原生类型数组XXXArray与Array并没有继承关系,但是他们有相同的方法属性集,也都有对应的工厂方法; ...
数组用Array类实现,和Java不同的地方在于,Array类有一个size属性表示数组长度,还有get和set方法,但是也可以使用array[position]的方式获取 1.4、Char Kotlin中的Char类型不能作为数字使用,如果需要的话需要使用toInt方法转换。 1.5、字符串 字符串的用法和Java的差不多,这里需要注意的一点是我们可以使用字符串模版,模...