我可以像这样在Kotlin中初始化一个数组:
val mArr = Array<Int>(5) {0}
,我将得到以下数组[0,0,0,0,0]
问题是,我需要初始化一个数组并将另一个数组的值放入其中。 即:
initialArray = [1, 4, 5 ,-2, 7]
val offset = 5
并且应该得到mArr = [6, 9, 10, 3, 12]
是否可以根据每个mArr[i]
设置每个initialArray[i]
的值?
类似
val mArr = Array<Int>(initialArray.size) { offset + initialArray[index]}
不将其包装在for loop
答案 0 :(得分:2)
数组具有 <!DOCTYPE html>
<html>
<head>
<title>Table fitting</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<table>
<tr>
<th class="t1"></th>
<th class="t1">Cats</th>
<th class="t1">Dogs</th>
</tr>
<tr>
<td style="text-align:right",class="t1">Funny</td>
<td class="t1">Catty</td>
<td class="t1">Rocky</td>
</tr>
<tr>
<td style="text-align:right",class="t1">Sad</td>
<td class="t1">Kate</td>
<td class="t1">Rex</td>
</tr>
</table>
</body>
</html>
函数。
所以:
map
但是这样一来,您无需修改旧数组就可以创建新数组。
如果要修改旧数组,可以使用val initialArray = arrayOf(1, 4, 5 ,-2, 7)
val offset = 5
val newArray = initialArray.map { it + offset }.toTypedArray()
扩展方法:
forEachIndexed
答案 1 :(得分:0)
val mArr = Array<Int>(initialArray.size) { offset + initialArray[index] }
已经可以使用了。只是这里没有定义index
。您希望它是函数的参数,因此{ index -> offset + initialArray[index] }
或更短的{ offset + initialArray[it] }
。另外,为此,您可能需要IntArray
instead of Array<Int>
(也需要initialArray
)。结合这些更改:
val mArr = IntArray(initialArray.size) { offset + initialArray[it] }