我读了一个示例代码val asc = Array(5, { i -> (i * i).toString() })
。为什么我在Kotlin中以var开头?
结果是["0", "1", "4", "9", "16"]
。
但我很奇怪,为什么我以0开头表达了var { i -> (i * i).toString() }
我读了一个示例代码val asc = Array(5, { i -> (i * i).toString() })
。为什么我在Kotlin中以var开头?
结果是["0", "1", "4", "9", "16"]
。
但我很奇怪,为什么我以0开头表达了var { i -> (i * i).toString() }
构造你使用这个样子的:
/**
* Creates a new array with the specified [size], where each element is calculated by calling the specified
* [init] function. The [init] function returns an array element given its index.
*/
public inline constructor(size: Int, init: (Int) -> T)
它需要的指数,这开始在0
的数组,因此{ i -> (i * i).toString() }
与0
在0
参数结果。
您可以如果有任何疑问,这个代码检查:
fun main(args: Array<String>) {
val func: (Int) -> (String) = { i -> (i * i).toString() }
println(func(0))
}
阵列在科特林(如许多语言,包括C,C++,C#和Java)都使用零基于阵列。这意味着第一个元素位于位置0.
(参见Fortran,其中数组是基于1的)。
其数组索引..总是从0 –
出于兴趣开始,你在其他任何语言编程?对我而言,科林似乎是一个奇怪的第一选择。 – Bathsheba
@Bathsheba,好奇为什么觉得Kotlin是一个奇怪的第一选择? – innov8