初始化之前使用的Swift变量

时间:2015-07-03 12:56:43

标签: swift

如果我在swift中编写这样的代码,它会在初始化之前使用变量x。这似乎在java中是合法的。为什么这不可能在swift中实现同样的目标?

  var x:Int
  var y:Int  = 0

  if (y==0) {
      x=0
   }

   if (y==1) {
      x=1
   }

   y=x

3 个答案:

答案 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
   }