iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang switch语句的灵活写法介绍
  • 909
分享到

golang switch语句的灵活写法介绍

2024-04-02 19:04:59 909人浏览 薄情痞子
摘要

switch是很容易理解的,先来个代码,运行起来 看看你的操作系统是什么吧 package main import ( "fmt" "runtime" )

switch是很容易理解的,先来个代码,运行起来

看看你的操作系统是什么吧


package main 
import (
    "fmt"
    "runtime"
)
 
func main() {
    fmt.Print("Go runs on ")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X.")
    case "linux":
        fmt.Println("Linux.")
    default:
        fmt.Printf("%s", os)
    }
}

runtine运行时获取当前的操作系统,使用GOOS。还和if for之类的习惯一样,可以在前面声明赋值变量。我们就在这里来获取操作系统的信息了。


os := runtime.GOOS;

{}里的case比较容易理解。操作系统是 "darwin" 就打印"OS X.";操作系统是 "linux" 就打印"Linux";其他的都直接打印系统类别。

在go语言的switch中除非以fallthrough语句结束,否则分支会自动终止。

所以修改一下上面的代码,再运行一下:


package main 
import (
    "fmt"
    "runtime"
)
 
func main() {
    fmt.Print("Go runs on ")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X.")
    case "linux":
        fmt.Println("Linux.")
    case "windows":
        fmt.Println("win")
        fallthrough
    default:
        fmt.Printf("%s", os)
    }
}

增加了当前的系统的case选项"windows",还在这个分支使用了fallghrough。

如果你再注释掉 fallthrough,或干脆删除 fallthrough,再运行,就会发现,那个穿透的效果没有了。

总结

switch 的条件从上到下的执行,当匹配成功的时候停止。如果匹配成功的这个分支是以fallthrough结束的,那么下一个紧邻的分支也会被执行。

switch的没有条件的用法。这其实相当于switch true一样。每一个case选项都是bool表达式,值为true的分支就会被执行,或者执行default。


package main 
import (
    "fmt"
    "time"
)
 
func main() {
    t := time.Now()
    switch  {
    case t.Hour() > 12:
        fmt.Println("Morning was passed.")
    case t.Hour() > 17:
        fmt.Println("Afternoon was passed.")
    default:
        fmt.Println("Now too early.")
 
    }
}

补充:记Golang switch的一个“坑”

switch分支语句在各个编程语言中都很常用,能够根据条件选中一个或多个case语句进行执行,习惯于C、c++语言编程的都知道,在C、C++中switch分支判断条件会依次遍历每个case,当遇到符合条件的case时,便会执行该case中的语句,直到遇到case中显示的break语句才会终止switch流程,如果一个case中没有显示的break此case,程序便会执行下一个case(如果存在的话)。

对于从C、C++刚转到Go语言的程序员来说,这里面便存在一个“坑”,本人在开发过程中也踩过这个“坑”,那便是Go语言在switch分支语句的每个case中会自动加上一个break语句,也就是说在Go语言中程序进入了一个case流程,不管程序中有没有显示的break此case,程序都不会继续执行其他的case流程,而是直接退出整个switch流程,这里做一个简单的实验。

显示的在每个case中添加上break语句:


package main
import "fmt"
func main() {
    var num = 10
    switch num {
    case 5:
        fmt.Println("num is 5")
        break
    case 10:
        fmt.Println("num is 10")
        break
    case 15:
        fmt.Println("num is 15")
        break
    default:
        fmt.Println("num is default branch")
    }
    return
}

程序的运行结果如下:

num is 10

下面去掉每个case中显示的break语句,看看结果是什么呢。


package main
import "fmt"
func main() {
    var num = 10
    switch num {
    case 5:
        fmt.Println("num is 5")
    case 10:
        fmt.Println("num is 10")
    case 15:
        fmt.Println("num is 15")
    default:
        fmt.Println("num is default branch")
    }
    return
}

程序的运行结果如下:

num is 10

很明显,在每个case语句中是否显示的添加break语句都只会执行其中的一个分支流程,这对于想要通过break来控制每次执行case数量的程序员来说确实是一个不大不小的“坑”。

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

您可能感兴趣的文档:

--结束END--

本文标题: golang switch语句的灵活写法介绍

本文链接: https://www.lsjlt.com/news/125178.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • golang switch语句的灵活写法介绍
    switch是很容易理解的,先来个代码,运行起来 看看你的操作系统是什么吧 package main import ( "fmt" "runtime" ) ...
    99+
    2024-04-02
  • java中switch语句的用法介绍
    本篇文章和大家了解一下java中switch语句的用法介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。一. switch分支结构1. 简介switch结合case,能够判断一个变量或表达式与一系列值中的某个值是否相等,...
    99+
    2023-07-06
  • C语言switch语句和if用法介绍
    目录switch语句switch和if的区别1.switch语句结构示意图2.if语句结构示意图switch的高级(灵活)运用switch的嵌套实现循环及循环的两个关键字什么是循环结...
    99+
    2024-04-02
  • golang中一种不常见的switch语句写法示例详解
    最近翻开源代码的时候看到了一种很有意思的switch用法,分享一下。 注意这里讨论的不是typed switch,也就是case语句后面是类型的那种。 直接看代码: func (s ...
    99+
    2023-05-18
    golang switch语句写法 golang switch写法
  • mysql中count()语句的用法介绍
    本篇内容主要讲解“mysql中count()语句的用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中count()语句的用法介绍”吧!查看表结构...
    99+
    2024-04-02
  • C#的switch语句的用法
    本篇内容主要讲解“C#的switch语句的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#的switch语句的用法”吧!C# switch语句在Java中,switch语句只能处理整数。但...
    99+
    2023-06-17
  • js中switch语句的用法
    这篇文章将为大家详细讲解有关js中switch语句的用法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。小编向大家介绍过JavaScript中switch 语句的语法格式(https://www.py.cn...
    99+
    2023-06-14
  • sql语句中with as的用法介绍
    本篇内容介绍了“sql语句中with as的用法介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • c++中switch语句的用法
    c++ 中的 switch 语句是一种选择结构,用于根据变量或表达式的值执行不同的代码块,可将多个 if-else 语句转换为更简洁的代码。其用法包括:指定一个表达式来评估。为要匹配的常...
    99+
    2024-05-09
    c++
  • VBscript语句的功能介绍
    本篇内容介绍了“VBscript语句的功能介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VBScript 语句描述语言元素将控制权交给一...
    99+
    2023-06-08
  • MySQL特有的SQL语句介绍
    本篇内容介绍了“MySQL特有的SQL语句介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!create语...
    99+
    2024-04-02
  • java中的switch case语句的用法
    本篇内容主要讲解“java中的switch case语句的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的switch case语句的用法”吧!s...
    99+
    2024-04-02
  • Oracle数据库优化:灵活修改分区名称的方法介绍
    Oracle数据库是一种常用的关系型数据库管理系统,用于存储和管理企业数据。在日常使用中,对数据库的优化是非常重要的,可以提高数据库的性能和效率。其中一个重要的优化技巧是对数据库进行分...
    99+
    2024-03-08
    优化 数据库 oracle sql语句
  • JavaScript Switch语句的用法是什么
    JavaScript Switch语句用于在多个选项中选择一个执行的代码块。它根据表达式的值,在多个case中选择匹配的一个,并执行...
    99+
    2023-10-11
    JavaScript
  • 重点介绍Golang方法的语法和使用
    Golang作为一门比较年轻的语言,在方法中也有自己独特的实现方式。本文将重点介绍Golang方法的语法和使用。一、方法定义Golang中可以为任何类型定义方法,包括引用类型和非引用类型。方法定义格式如下:func (t Type) met...
    99+
    2023-05-14
  • mybatis中sql语句CDATA标签的用法介绍
    这篇文章主要介绍“mybatis中sql语句CDATA标签的用法介绍”,在日常操作中,相信很多人在mybatis中sql语句CDATA标签的用法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatis...
    99+
    2023-06-20
  • js的switch语句用法是什么
    switch语句是一种在多个条件下执行不同代码块的控制流语句。它的基本用法如下:```javascriptswitch (expre...
    99+
    2023-09-15
    js
  • JavaScript Switch语句的用法有哪些
    JavaScript的Switch语句用于根据不同的条件执行不同的操作。下面是Switch语句的用法:1. 基本用法:```java...
    99+
    2023-09-05
    JavaScript
  • PHP Switch语句的用法是什么
    PHP的Switch语句是一种选择结构,用于根据不同的条件执行不同的代码块。语法如下:```switch (expression) ...
    99+
    2023-10-12
    PHP
  • C语言switch语句的用法有哪些
    C语言中的switch语句用于根据不同的条件执行不同的代码块。它的用法有以下几种:1. 基本用法:根据一个变量的值,执行对应的代码块...
    99+
    2023-08-18
    C语言 switch
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作