Swift - 在一行中定义多个全局变量

Swift - Defining more than one global variable in a line

自 Swift 2.0 我遇到了问题,如果每行只定义一个全局变量,那么定义全局变量只能正常工作。对于局部变量,没有这样的问题。在 Swift 1.0 中这工作正常,但 Apple 改变了一些东西。

示例:

var x1: Int = 0
var y1: Int = 0
var z1: Int = 0

func Test1 ()
{
    x1 = 30
    y1 = 20
    z1 = 10
}

var x2: Int = 0, y2: Int = 0, z2: Int = 0

func Test2 ()
{
    x2 = 30
    y2 = 20
    z2 = 10
}

func main_program ()
{
    Test1()
    Test2()
    print("x1=\(x1), y1=\(y1), z1=\(z1)\n")
    print("x2=\(x2), y2=\(y2), z2=\(z2)\n")
}

当您现在调用 main_program 时,您将获得

x1=30, y1=20, z1=10
x2=0, y2=0, z2=10

在终端中。但是这两行应该是相同的并且与 Swift 1.0

相同

所以我不得不改变我所有的程序,在一行中只定义一个全局变量。如果变量是某些公式的一部分,您会得到一些有趣的结果,而不仅仅是零。

这是 Swift 中的错误还是这种行为有严重的背景?

来自release notes

Known Issues in Xcode 7 beta 6 — Swift 2.0 and Objective-C

Declaring multiple global variables in a single var or let may cause corruption of their values. (22207407) Workaround: Declare each variable using a separate var or let.