arrays - Kotlin 使用另一个数组初始化一个数组
问题描述
我可以像这样在 Kotlin 中初始化一个数组:
val mArr = Array<Int>(5) {0}
我将有以下数组[0,0,0,0,0]
问题是,我需要初始化一个数组并将另一个数组的值放入其中。IE:
initialArray = [1, 4, 5 ,-2, 7]
val offset = 5
并且应该得到mArr = [6, 9, 10, 3, 12]
有没有办法mArr[i]
根据 each设置 each 的值initialArray[i]
?
就像是
val mArr = Array<Int>(initialArray.size) { offset + initialArray[index]}
无需将其包装在for loop
解决方案
有map
数组功能。
所以:
val initialArray = arrayOf(1, 4, 5 ,-2, 7)
val offset = 5
val newArray = initialArray.map { it + offset }.toTypedArray()
但是这样你就可以在不修改旧数组的情况下创建新数组。如果要修改旧数组,可以使用forEachIndexed
扩展方法:
initialArray.forEachIndexed { index, value ->
initialArray[index] = initialArray[index] + offset
// or:
initialArray[index] = value + offset
}
推荐阅读
- java - 获取图像并在gridview中显示
- python-3.x - 使用 ndarray、prod 和 cumprod python
- android - 滚动列表视图后如何在按钮上设置焦点(设置可见性)
- angular - 路由器将编码导航到地址栏中的 %3d angular5
- microsoft-graph-api - 无法在 OneNote 页面中进行两项更改
- mariadb - REGEXP_SUBSTR 返回所有匹配项(mariaDB)
- asp.net - 将标签模板字段值传递给 vb.net 函数
- php - PHP表单找不到空字段
- android - Android WebView 中的 Botframework Speak 功能
- shell - awk 不打印新行