[英]How can I expand the scope of a variable in Swift
我正在用Xcode編寫macOS命令行工具。 變量“ num1”始終返回nil。 我在一開始就聲明了它,因此它應該是一個全局變量。 我該如何解決?
var num1: Int!
if userChoice == "add" {
print("Enter first number")
if let num1 = readLine() {
}
}
print ("\(num1)")
如前所述,您有兩個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")
}
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)")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.