varx=1switchx{case1:println("x=1")fallthroughcaseletywherey==1:println("x==1")default:println("default")}提示错误:fallthroughcannottransfercontroltoacaselabelthatdeclaresvariable只能从字面上理解这句报错,谁能详细解释一下这个错误?
2 回答
湖上湖
TA贡献2003条经验 获得超2个赞
错误提示已经很明白了,fallthrough下面的那个case不能声明新变量、常量,也就是不能跳转到case后面接var或者let的语句的。原因是因为fallthrough不会检查where匹配条件,这样便会导致var或者let声明的变量常量无法得到值,所以swift禁止fallthrough到这样的case中。你可以把下面的语句提前就正确了。varx=1switchx{caseletywherey==1:println("x==1")fallthroughcase1:println("x=1")default:println("default")}
添加回答
举报
0/150
提交
取消