初始化前使用的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!

如果我在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
   }

您可以使用
在不初始化的情况下定义变量

    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