首页 > 解决方案 > Kotlin 中有没有办法创建/初始化一个多维数组而不给它值

问题描述

嗨,我想知道是否有一种简短的方法可以创建一个没有像 C# 中的 preassinde 值的多维数组string[][] arr = string[5][]

标签: kotlinmultidimensional-array

解决方案


string[][] arr = string[5][]在 C# 中不是多维数组,也没有“预分配值”。它是一个锯齿状数组(这意味着每个内部数组可以是不同的长度),并且具有null每个内部数组的初始(预分配)值。

要在 Kotlin 中做同样的事情,你会这样做:

val arr = arrayOfNulls<Array<String?>>(5)

这给了你一个Array<Array<String?>?>. 我会想象让内部数组可以为空有时会很不方便。

如果您只想要一个 by m 数组,但null默认需要元素,您可以执行以下操作:

val arr = Array(5) { arrayOfNulls<String>(10) }

这在 C# 中大致翻译为:

var arr = new string[5, 10];

推荐阅读