go语言中fallthrough的用法说明

作者:腾信@迪克猪 时间:2024-04-23 09:33:47 

fallthrough:Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。

示例程序1:


switch {
   case false:
       fmt.Println("The integer was <= 4")
       fallthrough
   case true:
       fmt.Println("The integer was <= 5")
       fallthrough
   case false:
       fmt.Println("The integer was <= 6")
       fallthrough
   case true:
       fmt.Println("The integer was <= 7")
       fallthrough
   case false:
       fmt.Println("The integer was <= 8")
   default:
       fmt.Println("default case")
   }

输出结果:

The integer was <= 5

The integer was <= 6

The integer was <= 7

The integer was <= 8

问题:是否在switch最后一个分支使用fallthrough???

go语言中fallthrough的用法说明

有错误提示,显示:cannot fallthrough final case in switch

fallthrough不能用在switch的最后一个分支。

示例程序2:

上述示例是true、false常量进行分支判断,看如下变量示例。


s := "abcd"
   switch s[1] {
   case 'a':
       fmt.Println("The integer was <= 4")
       fallthrough
   case 'b':
       fmt.Println("The integer was <= 5")
       fallthrough
   case 'c':
       fmt.Println("The integer was <= 6")
   default:
       fmt.Println("default case")
   }

输出结果如下:

The integer was <= 5

The integer was <= 6

更改为:


s := "abcd"
   switch s[3] {
   case 'a':
       fmt.Println("The integer was <= 4")
       fallthrough
   case 'b':
       fmt.Println("The integer was <= 5")
       fallthrough
   case 'c':
       fmt.Println("The integer was <= 6")
   default:
       fmt.Println("default case")
   }

输出:

default case

总结:

switch分支中使用变量进行判断的时,fallthrough正确的分支开始其作用。

补充:【踩坑】golang的fallthrough大坑

加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行,后面的条件并不会再判断了,?

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

来源:https://www.cnblogs.com/zsy/p/6741902.html

标签:go,fallthrough
0
投稿

猜你喜欢

  • python通过pil模块获得图片exif信息的方法

    2021-08-26 14:31:21
  • 一文轻松掌握python语言命名规范规则

    2023-03-23 02:11:43
  • django框架模型层功能、组成与用法分析

    2021-10-21 22:00:28
  • 微软建议的ASP性能优化28条守则(5)

    2008-02-27 13:54:00
  • 永恒之蓝实战教程之Mac通过Metasploit攻击Server2008的详细过程

    2022-08-01 05:41:26
  • Python批量转换文件编码格式

    2021-10-07 05:01:22
  • MySQL关于字符串中数字排序的问题分析

    2024-01-21 23:30:18
  • Python类属性与实例属性用法分析

    2022-10-12 03:14:58
  • MYSQL server has gone away解决办法

    2010-11-25 17:22:00
  • 解决python中使用plot画图,图不显示的问题

    2021-09-27 16:00:07
  • python读写ini文件示例(python读写文件)

    2023-06-21 03:10:14
  • Python网络编程详解

    2022-01-09 15:25:10
  • 教你用Python写一个植物大战僵尸小游戏

    2021-07-19 22:59:37
  • Python模块汇总(常用第三方库)

    2023-05-21 16:25:37
  • python 合并多个excel中同名的sheet

    2023-06-06 08:34:27
  • 深入了解Python中的变量类型标注

    2023-02-01 09:06:37
  • 2022最新版MySQL 8.0.30 安装及配置教程(小白入门)

    2024-01-28 16:49:49
  • sqlserver下Kill 所有连接到某一数据库的连接

    2024-01-21 18:05:51
  • python导入csv文件出现SyntaxError问题分析

    2023-12-12 04:29:57
  • Python实现根据Excel生成Model和数据导入脚本

    2022-01-10 09:58:12
  • asp之家 网络编程 m.aspxhome.com