gpt4 book ai didi

swift - 更改数组中的特定值

转载 作者:行者123 更新时间:2023-11-30 10:16:02 24 4
gpt4 key购买 nike

我有 3 个 Int 类型的数组,每个数组都有 5 个值。我正在尝试创建一个根据条件替换值的函数。例如array1,如果索引的值在2-5之间,则替换为随机生成的1-6之间的数字。

这是我到目前为止所拥有的

import Foundation

func newRandomNumbers(#array1: [Int], array2: [Int], array3: [Int]) {

for i in 0..<5 {
switch (array1[i]) {
case 2, 3, 4, 5:
let randomNumber = Int(1 + arc4random() % 6)
array1[i] = randomNumber

break;

default:
break;
}

switch (array2[i]) {
case 2, 3, 4, 5:

array2[i]
break;
default:
break;
}

switch (array3[i]) {
case 1, 2, 3, 4, 5:

array3[i]
break;
default:
break;
}
}
}

我收到错误“无法分配给“Int”类型的不可变值”

当我重写一个具有相同目的的简化函数时,我没有收到错误,但奇怪的是并非所有数字都被替换。

import Foundation


var newArray = [2,3,4,5,6]

func newRandom(#array1: [Int]){
for i in 0..<5 {
switch(array1[i]) {
case 2, 3, 4, 5:
let randomNumber = Int(1 + arc4random() % 6)
newArray[1] = randomNumber
default:
break;
}
}
}

newRandom(array1: newArray)

newArray

不知道如何解决。关于如何清理我的代码的建议也将不胜感激。谢谢!

最佳答案

“无法分配给‘Int’类型的不可变值”是因为参数实际上是常量。您可以阅读以下行:

func newRandomNumbers(#array1: [Int], array2: [Int], array3: [Int])

如:

func newRandomNumbers(#array1 let array1: [Int], let array2: [Int], let array3: [Int])

您可以通过将 var 放在参数前面并返回数组来更改它。另一种选择是使用 & 使其成为引用,因此您不必返回新数组。

关于swift - 更改数组中的特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29890335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com