我正在尝试获取一个var来获取一个数组镜像其位置的值。然后将它除以另一个var的值,从另一个数组中获取它,以反映其位置。然后将结果值分配给第三个变量
现在,在函数中,我将第1个var增加1,然后将结果值附加到第三个数组。 或者我想。
它添加了一个值,它是前两个变量的简单除法,而不增加第一个变量。 但是在控制台中第3个var的结果(保持除法的结果),它显示了增量。 它只是在函数的附加部分中没有考虑到它。
我确定这是一个语法问题,但如果有人能查看我的代码,我会非常感激。
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) ")
答案 0 :(得分:0)
arrayPosition在初始赋值后永远不会改变(由3/1得到的值为3)。
虽然在第二个增量之后positionA确实是5,但这不是你要添加到arrayOfValues的结果,所以结果是预期的(3)。
[编辑]
你可以把它变成像这样的计算变量
var arrayPosition : Int { return arrayA[positionA] / arrayB[positionB] }
它就像一个函数,但你不需要使用()来调用它。