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 中的错误还是这种行为有严重的背景?
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
.
自 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 中的错误还是这种行为有严重的背景?
Known Issues in Xcode 7 beta 6 — Swift 2.0 and Objective-C
Declaring multiple global variables in a single
var
orlet
may cause corruption of their values. (22207407) Workaround: Declare each variable using a separatevar
orlet
.