switch 变量定义报错

背景:

C++变量的作用域范围是, 从变量定义开始到右半边的花括号。(全局变量是在所有的花括号外面,所以全局变量的作用域是从定义的位置到文件结束。)

 

问题现象:

swift语句,在case 里面定义变量,编译错误。

 

问题原因:

当switch语句,在中间一个case定义变量,后面的case语句使用变量的时候,完全是合法的,但是可想而知,这样会运行失败。

因为当逻辑走到后面的case而没有从上面的case进去,变量还没有定义就直接使用了。

 

我想,这可能是编译器的一个优化,不让在中间的case语句里面定义变量,只能在最后的case语句里面定义。

在中间的case语句里面定义变量会导致编译报错。

posted @ 2018-09-08 17:12  howardD  阅读(258)  评论(0编辑  收藏  举报