代码之家  ›  专栏  ›  技术社区  ›  AndreKR

如何初始化这些阵列?

  •  0
  • AndreKR  · 技术社区  · 2 年前

    我想要一个类,每个类存储三组30个foo。我可以将它们声明为Foo数组,但我不知道如何用30个元素初始化它们(给它们默认值)。

    data class Container (
        val first: Array<Foo>,
        val second: Array<Foo>,
        val third: Array<Foo>,
    )
    
    data class Foo (val a: Int, val b: Int)
    
    1 回复  |  直到 2 年前
        1
  •  0
  •   broot    2 年前

    在Kotlin中创建数组的方法不多,而且非常简单。根据您的需要,您可以使用 arrayOf() function , Array() constructor List

    示例 arrayOf() :

    val first = arrayOf(
        Foo(0, 0),
        Foo(1, 1),
        ...
    )
    

    Array() :

    val first = Array(30) { Foo(it, it) }
    

    val firstList = mutableListOf<Foo>()
    firstList += Foo(0, 0)
    firstList += Foo(1, 1)
    ...
    first = firstList.toTypedArray()
    

    如果生成这些数组的代码很复杂,可以在内部编写 init {} 阻止或创建提供这些数组的静态函数。