
上QQ阅读APP看书,第一时间看更新
4.5 默认的switch语句
还有另一种更强大的方式来使用switch
语句。正如Go允许你省去for
语句的部分声明一样,你可以写一个switch
语句不指定比较的值。这叫作默认的switch
。常规的switch
只允许你检查一个值是否相等。默认的switch
允许对每个case
语句使用比较操作。在The Go Playground(https://oreil.ly/v7qI5)上运行示例4-21中的代码。
示例4-21:默认的switch

输出如下所示:

上面的例子和常规的switch
语句类似,可以包括一个短变量声明作为默认的switch
语句的一部分。但与常规的switch
语句不同的是,默认的switch
允许自定义case
分支的判断。默认的switch
确实很简便,但是不要过度滥用。当所有case
分支的等值比较都针对同一个变量时,就是使用默认的switch
的最佳场景:

可以使用switch
语句表达式替换判断:
