初始化前使用的Swift变量
如果我在swift中写这样的代码,它会说变量x在初始化之前使用过。这在java中似乎是合法的。为什么在swift中不可能实现这一点?我如何实现这一点初始化前使用的Swift变量,swift,Swift,如果我在swift中写这样的代码,它会说变量x在初始化之前使用过。这在java中似乎是合法的。为什么在swift中不可能实现这一点?我如何实现这一点 var x:Int var y:Int = 0 if (y==0) { x=0 } if (y==1) { x=1 } y=x 要使用变量,您必须初始化它们,或者可以使用强制变量展开,或者您可以使用?以可选方式初始化它。在这种情况下,你可以这样使用它 var x:Int!
var x:Int
var y:Int = 0
if (y==0) {
x=0
}
if (y==1) {
x=1
}
y=x
要使用变量,您必须初始化它们,或者可以使用
强制变量
展开,或者您可以使用?
以可选方式初始化它。在这种情况下,你可以这样使用它
var x:Int! /// var x:Int?
var y:Int = 0
if (y == 0) {
x=0
}
if (y == 1) {
x=1
}
您可以使用
或?
在不初始化的情况下定义变量
var x:Int?
var y:Int = 0
if (y==0) {
x=0
}
if (y==1) {
x=1
}
y=x!
或
非可选变量在初始化之前不能使用。 但是,当变量在使用前保证已初始化时,甚至可以使用
let
let x: Int
var y : Int = 0
if (y==0) {
x=0
} else if (y==1) {
x=1
} else {
x=2
}
y=x
你的两个例子有什么区别?@BlazeyJohn将
?
和之间的区别提到这里代码>由于Swift 1.2,此表达式有效:
let x: Int
var y : Int = 0
if (y==0) {
x=0
} else if (y==1) {
x=1
} else {
x=2
}
y=x