如何在Swift中扩展变量的范围

时间:2016-11-11 01:05:26

标签: swift

我在Xcode中编写了一个macOS命令行工具。变量" num1"一直没有回来。我在开始时声明它应该是一个全局变量。我该如何解决这个问题?

var num1: Int!

if userChoice == "add" {
    print("Enter first number")
    if let num1 = readLine() {
    }
}

print ("\(num1)")

2 个答案:

答案 0 :(得分:2)

如上所述,您有两个num1变量。第二个范围仅限于第二个if语句的块。

您还遇到readLine返回可选String而不是Int的问题。

您可能希望代码更像这样:

var num1: Int?

if userChoice == "add" {
    print("Enter first number")
    if let line = readLine() {
        num1 = Int(line)
    }
}

print ("\(num1)")

当然,您现在可能需要处理num1 nil

一种选择是正确打开值:

if let num = num1 {
    print("\(num)")
} else {
    print("num1 was nil")
}

答案 1 :(得分:0)

  1. 将第二个num1称为其他内容。
  2. 在if。中添加一些内容。
  3.  var num1: Int!
    
     if userChoice == "add" {
        print("Enter first number")
        if let num2 = readLine() { 
            // This if-let runs if num2 is not nill. 
            print ("\(num2)")
            num1 = Int(num2)
        }
    }
    
    print ("\(num1)")