使用简单的Swift代码

时间:2017-09-16 00:21:21

标签: arrays swift function

我正在尝试获取一个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) ")

1 个答案:

答案 0 :(得分:0)

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

虽然在第二个增量之后positionA确实是5,但这不是你要添加到arrayOfValues的结果,所以结果是预期的(3)。

[编辑]

你可以把它变成像这样的计算变量

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

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

相关问题