kotlin - Kotlin 中有没有办法创建/初始化一个多维数组而不给它值
问题描述
嗨,我想知道是否有一种简短的方法可以创建一个没有像 C# 中的 preassinde 值的多维数组string[][] arr = string[5][]
?
解决方案
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];
推荐阅读
- ruby-on-rails - Slim 模板在选项标签中包含链接标签
- sql - 如何通过 created_at [ruby] 分组为 2 周增量
- android - 如何杀死 Kotlin 中的协程?
- arrays - 使用 InstanceID 禁用/启用 PnP 设备的脚本 - 但重新启动时 ID 会更改
- python - C 和 Python 中的浮点数之间的差异
- python - 如果字符串中存在子字符串并与不区分大小写的python匹配,则返回子字符串
- python - 嵌套for循环仅在Python中网格的第一行上运行
- android - 在 Android 12 上应多久更新一次大致位置
- python-3.x - 如何从列中提取与列表匹配的单词?
- javascript - 新实例字段语法