4.2.4 switch值绑定

4.2.4 switch值绑定

假设无论程序能否识别城市区号,都需要把实际的区号放进provinceName,那么可以利用Swift的值绑定特性在前面的switch语句的基础上做到这一点。值绑定能在某个特定分支中把待匹配的值绑定到本地的常量或变量上。这个常量或变量只能在该分支中使用,如动手写4.2.4:

动手写4.2.4 CityCodeValueBinding

控制台输出如下:

这里把cityCode传入每个分支中的provinceName中。我们仔细看一下最后一个分支:当cityCode没有匹配上面的任何一个分支时,就创建了一个临时常量unknownCode,将其绑定为cityCode的值。举个例子,如果cityCode的值等于451,那么switch语句会把provinceName设为“未知区号451”,因为unknownCode会把任何没有匹配上前面分支的值拿过来,所以也就不需要显式的默认分支了。

注意:这里用了常量,所以unknownCode的值是固定的。但如果因为某些原因需要对unknownCode做些处理,就可以使用var而不使用let来声明,这么做就可以在最后一个分支体中修改unknownCode的值。本例展示了值绑定的语法,其实标准的default分支就能得到同样的结果:把最后一个分支按照下面的代码替换为default分支,这样就能涵盖所有可能的值。