如果我在swift中编写这样的代码,它会在初始化之前使用变量x。这似乎在java中是合法的。为什么这不可能在swift中实现同样的目标?
var x:Int
var y:Int = 0
if (y==0) {
x=0
}
if (y==1) {
x=1
}
y=x
答案 0 :(得分:1)
您可以使用!
或?
来定义变量,而无需初始化
var x:Int?
var y:Int = 0
if (y==0) {
x=0
}
if (y==1) {
x=1
}
y=x!
OR
var x:Int!
var y:Int = 0
if (y==0) {
x=0
}
if (y==1) {
x=1
}
y=x
答案 1 :(得分:1)
在初始化之前不能使用非可选变量。
但是,当保证在使用变量之前初始化变量时,甚至可以使用let
let x: Int
var y : Int = 0
if (y==0) {
x=0
} else if (y==1) {
x=1
} else {
x=2
}
y=x
答案 2 :(得分:0)
要使用变量,您必须初始化它们是一个问题,或者您可以强制使用!
的变量进行解包,或者您可以使用?
使用可选项来启动变量。在这种情况下,你可以像那样使用它
var x:Int! /// var x:Int?
var y:Int = 0
if (y == 0) {
x=0
}
if (y == 1) {
x=1
}