我在Xcode中编写了一个macOS命令行工具。变量" num1"一直没有回来。我在开始时声明它应该是一个全局变量。我该如何解决这个问题?
var num1: Int!
if userChoice == "add" {
print("Enter first number")
if let num1 = readLine() {
}
}
print ("\(num1)")
答案 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)
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)")