在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
当前回答
你可以像这样创建一个Int数组:
val numbers = IntArray(5, { 10 * (it + 1) })
5是Int数组的大小。函数是元素init函数。“it”范围在[0,4],加上1 make范围在[1,5]
原点函数为:
/**
* An array of ints. When targeting the JVM, instances of this class are
* represented as `int[]`.
* @constructor Creates a new array of the specified [size], with all elements
* initialized to zero.
*/
public class IntArray(size: Int) {
/**
* Creates a new array of 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) -> Int)
...
}
定义在Arrays.kt中的IntArray类
其他回答
Kotlin有专门的类来表示基本类型的数组,没有装箱开销。例如- IntArray, ShortArray, ByteArray等。我需要说明,这些类与父Array类没有继承关系,但它们具有相同的方法和属性集。它们中的每一个都有相应的工厂函数。所以,要在Kotlin中初始化一个数组,你只需要键入以下内容:
val myArr: IntArray = intArrayOf(10, 20, 30, 40, 50)
...或者这样:
val myArr = Array<Int>(5, { i -> ((i + 1) * 10) })
myArr.forEach { println(it) } // 10, 20, 30, 40, 50
现在你可以使用它:
myArr[0] = (myArr[1] + myArr[2]) - myArr[3]
在Kotlin中有几种初始化数组的方法:
劳动力素质():
var myarray = arrayOf(1,2,3,4,5)
劳动力素质():
var myarray = arrayOf<Int>(1,2,3,4,5)
使用Array构造函数:
val num = Array(3, {i-> i*1})
内置的工厂方法:
val num1 = intArrayOf(1, 2, 3, 4)
//For Byte Datatype
val num2 = byteArrayOf()
//For Character Datatype
val num3 = charArrayOf()
//For short Datatype
val num4 = shortArrayOf()
//For long
val num5 = longArrayOf()
在Kotlin中,我们可以使用arrayOf(), intArrayOf(), charArrayOf(), booleanArrayOf(), longArrayOf()函数来创建数组。
例如:
var Arr1 = arrayOf(1,10,4,6,15)
var Arr2 = arrayOf<Int>(1,10,4,6,15)
var Arr3 = arrayOf<String>("Surat","Mumbai","Rajkot")
var Arr4 = arrayOf(1,10,4, "Ajay","Prakesh")
var Arr5: IntArray = intArrayOf(5,10,15,20)
我想知道为什么没有人给出最简单的答案:
val array: Array<Int> = [1, 2, 3]
根据对我最初答案的一个评论,我意识到这只在注释参数中使用时才有效(这对我来说真的是出乎意料)。
看起来Kotlin不允许在注释之外创建数组文字。
例如,使用args4j库中的@Option查看以下代码:
@Option( name = "-h", aliases = ["--help", "-?"], usage = "Show this help" ) var help: Boolean = false
选项参数“aliases”的类型是Array<String>
简单的方法:
整数:
var number = arrayOf< Int> (10,20,30,40,50)
保持所有数据类型
var number = arrayOf(10, "string value", 10.5)