如何在kotlin中创建一个重复的对象数组?

我知道如何创建一个循环,但我想知道是否有一个更简单的方法?

例如,我想要创建一个Point数组,它们都将具有(0,0)或者通过索引增加x,y

Array有一个特殊的构造函数用于这样的事情:

 /** * 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) 

它可以用于你的两个用例:

 val points = Array(5) { Point(0, 0) } //[Point(x=0, y=0), Point(x=0, y=0), Point(x=0, y=0), Point(x=0, y=0), Point(x=0, y=0)] val points2 = Array(5) { index-> Point(index, index) } //[Point(x=0, y=0), Point(x=1, y=1), Point(x=2, y=2), Point(x=3, y=3), Point(x=4, y=4)] 

重复function是另一种方法:

 data class Point(val x: Int, val y: Int) @Test fun makePoints() { val size = 100 val points = arrayOfNulls(size) repeat(size) { index -> points[index] = Point(index,index) } }