背景:
C++变量的作用域范围是, 从变量定义开始到右半边的花括号。(全局变量是在所有的花括号外面,所以全局变量的作用域是从定义的位置到文件结束。)
问题现象:
swift语句,在case 里面定义变量,编译错误。
问题原因:
当switch语句,在中间一个case定义变量,后面的case语句使用变量的时候,完全是合法的,但是可想而知,这样会运行失败。
因为当逻辑走到后面的case而没有从上面的case进去,变量还没有定义就直接使用了。
我想,这可能是编译器的一个优化,不让在中间的case语句里面定义变量,只能在最后的case语句里面定义。
在中间的case语句里面定义变量会导致编译报错。