用长变量处理Kotlin数组

时间:2018-10-10 13:35:32

标签: kotlin

我对Kotlin有疑问。 我尝试了Kotlin的两个版本:1.0.0和1.2.6。 使用Kotlin,我们可以初始化数组并像这样访问其元素。

val n: Long = 10
val arr = Array(n, { it } )
val i: Long = 0
println(arr[i])

但是,我的这段代码有一个错误。

val n: Long = 10
val arr = Array(n.toInt(), { it } )
val i: Long = 0
println(arr[i.toInt()])

看来,这是将Long转换为Int以便编译此代码的唯一方法。

@ActiveProfiles

但是,这对我来说似乎太多余了,但是我找不到任何解决方案。所以我的问题是

  1. 有什么方法可以用Long初始化数组和访问元素 变量?
  2. 科特林是否有任何理由不应该在这里接受Long变量?

2 个答案:

答案 0 :(得分:5)

Kotlin随附longArrayOf(1, 2, 3),它将为您创建一个包含Long的数组。

请注意,您尝试使用println(arr[i])的方法是从Long中获得arr的值,但是数组的 indexing 是使用{ {1}}个。它永远无法与Int一起使用:

Long

答案 1 :(得分:0)

如果要初始化给定长度的long数组,可以使用相同的顶级belongs_to :auth_group belongs_to :user belongs_to :auth_role 函数:

Array

这里的数字val n = 10 // n is Int val arrayOfLongs = Array(n) { it.toLong() } // Array of 10 longs n,并且初始化函数将要初始化的元素的整数索引Int转换为it,因此我们得到一个long数组作为结果。

或者您可以使用另一个类似的功能来创建专门的Long

LongArray

两个数组都存储长型,但后者存储的长度更紧凑。