gpt4 book ai didi

arrays - 简单 Swift 代码的意外行为

转载 作者:行者123 更新时间:2023-11-30 12:09:33 27 4
gpt4 key购买 nike

我正在尝试获取一个 var 来获取反射(reflect)其位置的数组值。然后将其除以另一个 var 的值,从另一个镜像其位置的数组获取它。然后将结果值分配给第三个变量。

现在,在函数中,我将第一个 var 加 1,然后将结果值附加到第三个数组。至少我是这么想的。

它添加一个值,该值是前两个变量的简单除法,而不增加第一个变量。但在控制台中,第三个变量的结果(保存除法的结果)显示了增量。只是在函数的附加部分中没有考虑到它。

我确信这是一个语法问题,但如果有人可以查看我的代码,我将非常感激。

import UIKit

var positionA = 3
var positionB = 1
var arrayA = [0, 1, 2, 3, 4, 5, 6]
var arrayB = [0, 1, 2, 3, 4, 5, 6]
var arrayPosition = arrayA[positionA] / arrayB[positionB]
var arrayOfValues = [ 0 ,1 , 2, 3, 4]

print(arrayOfValues[1])
print(arrayOfValues[arrayPosition])

func increment() {
positionA = positionA + 1
arrayOfValues.append(positionA)
}

increment()

print(positionA)
print(arrayOfValues)
print(" ads a value of 4 to the arrayOfValues ( equal to positionA + 1) ")

func incrementB() {
positionA = positionA + 1
arrayOfValues.append(arrayPosition)
}

incrementB()

print(positionA)
print(arrayOfValues)
print("adds a value of 3 to the arrayOfValues that it still is equal to positionA, WITHOUT adding a +1 in the calculation of arrayPosition, when it SHOULD ADD a value of 5( positionA + 1 from increment(), +1 from incrementB) ")

最佳答案

arrayPosition 在初始赋值后永远不会改变(由 3/1 得出的值为 3)。

尽管在第二次增量后,positionA 确实为 5,但这并不是您要添加到 arrayOfValues 中的值,因此结果符合预期 (3)。

[编辑]

您可以将其设为这样的计算变量

var arrayPosition : Int { return arrayA[positionA] / arrayB[positionB] }

它就像一个函数,但你不需要使用 () 来调用它。

关于arrays - 简单 Swift 代码的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46248919/

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