use*_*464 1 xcode closures scope switch-statement swift
我正在苹果公司的快速之旅中在Xcode6-Beta4的操场上尝试以下内容:
let vegetable = "red pepper"
switch vegetable{
case "celery":
let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
let vegetableComment = "Is it a spicy \(x)"
default:
let vegetableComment = "Everything tastes good in soup."
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试调用vegetableCommentswitch语句中定义的变量,我得到了一个错误Use of unresolved identifier 'vegetableComment'
它是否与swift中switch语句的范围/闭包有关?
它是否与swift中switch语句的范围/闭包有关?
是的,它与变量的范围有关.你有四个常量叫vegetableComment.每个都是case作为switch声明的范围.
要访问在a中分配的变量,switch需要var在输入开关之前将其声明为a :
var vegetableComment = String()
let vegetable = "red pepper"
switch vegetable{
case "celery":
vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
vegetableComment = "Is it a spicy \(x)"
default:
vegetableComment = "Everything tastes good in soup."
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1705 次 |
| 最近记录: |