我讀了一個示例代碼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