如果我在swift中編寫這樣的代碼,它說變量x在初始化之前使用。這在java中似乎是合法的。爲什麼這是不可能的,我該如何實現?初始化之前使用的Swift變量
var x:Int
var y:Int = 0
if (y==0) {
x=0
}
if (y==1) {
x=1
}
y=x
如果我在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 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
要使用的變量,那就是你必須初始化它們的問題,或者您可以強制變量與!
解開或者您可以通過使用?
可選初始化它。在這種情況下,你可以使用它像
var x:Int! /// var x:Int?
var y:Int = 0
if (y == 0) {
x=0
}
if (y == 1) {
x=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
由於Swift 1.2這個表達式是有效的:https ://developer.apple.com/swift/blog/?id = 22 – vadian
很好,(Y) –
什麼是您的兩個例子之間的區別? –
@BlazeyJohn請參考'''和'!'之間的區別http://stackoverflow.com/questions/25895098/what-is-difference-between-and-in-swift –