Go语言学习之条件语句使用详解

 更新时间:2022年04月14日 14:04:35   作者:剑客阿良_ALiang  
这篇文章主要介绍了Go语言中条件语句的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1、if...else判断语法

语法的使用和其他语言没啥区别。

样例代码如下:

// 判断语句
func panduan(a int) {
    if a > 50 {
        fmt.Println("a > 50")
    } else if a < 30 {
        fmt.Println("a < 30")
    } else {
        fmt.Println("a <= 50 and a >= 30")
    }
}
 
func main() {
    panduan(120)
}

执行结果

a > 50

2、if嵌套语法

样例代码如下

//嵌套判断
func qiantao(b, c uint) {
    if b >= 100 {
        b -= 20
        if c > b {
            fmt.Println("c OK")
        } else {
            fmt.Println("b OK")
        }
    }
}

执行结果

c OK

3、switch语句

两种写法,不需要加break。

样例代码如下

//switch使用
func test_switch() {
    var a uint = 90
    var result string
    switch a {
    case 90:
        result = "A"
    case 80, 70, 60:
        result = "B"
    default:
        result = "C"
    }
    fmt.Printf("result: %v\n", result)
    switch {
    case a > 90:
        result = "A"
    case a <= 90 && a >= 80:
        result = "B"
    default:
        result = "C"
    }
    fmt.Printf("result: %v\n", result)
 
}

执行结果

result: A              
result: B  

注意

1、可是在switch后面加变量,后面的case主要做匹配判断。也可以直接使用switch{},case直接对关系运算结果做匹配。

2、 case中可以选择匹配多项。

4、类型switch语句

switch语句可以使用type-switch进行类型判断,感觉很实用的语法。

样例代码如下

//测试类型switch
func test_type_switch() {
    var x interface{}
    x = 1.0
    switch i := x.(type) {
    case nil:
        fmt.Printf("x type = %T\n", i)
    case bool, string:
        fmt.Printf("x type = bool or string\n")
    case int:
        fmt.Printf("x type = int\n")
    case float64:
        fmt.Printf("x type = float64\n")
    default:
        fmt.Printf("未知\n")
    }
}

执行结果

x type = float64     

注意

1、interface{}可以表示任何类型。

2、语法格式变量.(type)

5、fallthrough关键字使用

使用fallthrough关键字会强制执行后面的case语句内容,不管时候触发该case条件。

样例代码如下

// 测试fallthrough
func test_fallthrough() {
    a := 1
    switch {
    case a < 0:
        fmt.Println("1")
        fallthrough
    case a > 0:
        fmt.Println("2")
        fallthrough
    case a < 0:
        fmt.Println("3")
        fallthrough
    case a < 0:
        fmt.Println("4")
    case a > 0:
        fmt.Println("5")
        fallthrough
    case a < 0:
        fmt.Println("6")
        fallthrough
    default:
        fmt.Println("7")
    }
}

执行结果

2                      
3                      
4  

注意

1、如果一旦在往下执行case内容中不存在fallthrough,则会停止继续往下执行case内容。 

小结

我看到还有个select语句,需要和chan关键字进行配合使用,没不了解,后面先研究一下chan关键字。

到此这篇关于Go语言学习之条件语句使用详解的文章就介绍到这了,更多相关Go条件语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go语言的IO库那么多纠结该如何选择

    Go语言的IO库那么多纠结该如何选择

    在Go语言中涉及 I/O 操作的内置库有很多种,比如: io 库, os 库, ioutil 库, bufio 库, bytes 库, strings 库等等。拥有这么多内置库是好事,但是具体到涉及 I/O 的场景我们应该选择哪个库呢,带着这个问题一起通过本文学习下吧
    2021-06-06
  • golang切片拷贝的实现

    golang切片拷贝的实现

    在Golang中,切片的浅拷贝只复制指向对象的指针,而深拷贝则复制数据本身,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • 使用Go语言编写简洁代码的最佳实践

    使用Go语言编写简洁代码的最佳实践

    简洁的代码对于创建可维护、可阅读和高效的软件至关重要,Go 是一种强调简单和代码整洁的语言,在本文中,我们将结合代码示例,探讨编写简洁 Go 代码的最佳实践,需要的朋友可以参考下
    2023-09-09
  • 聊聊Golang的语言结构和变量问题

    聊聊Golang的语言结构和变量问题

    这篇文章主要介绍了Golang的语言结构和变量问题,在golang中定义变量的一般形式是使用 var 关键字,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • 如何编写Go语言中间件的实例教程

    如何编写Go语言中间件的实例教程

    不知道大家有没有写过中间件呢,它是怎么写的呢?下面这篇文中就来给大家分享一下使用Go,如何编写中间件,文中通过示例代码介绍的非常详细,供大家参考学习,下面随着小编来一起学习学习吧。
    2018-04-04
  • Go语言使用defer+recover解决panic导致程序崩溃的问题

    Go语言使用defer+recover解决panic导致程序崩溃的问题

    如果协程出现了panic,就会造成程序的崩溃,这时可以在goroutine中使用recover来捕获panic,进行处理,本文就详细的介绍一下,感兴趣的可以了解一下
    2021-09-09
  • golang sql连接池的实现方法详解

    golang sql连接池的实现方法详解

    database/sql是golang的标准库之一,它提供了一系列接口方法,用于访问关系数据库。下面这篇文章主要给大家介绍了关于golang sql连接池用法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-09-09
  • Go基础系列:Go切片(分片)slice详解

    Go基础系列:Go切片(分片)slice详解

    这篇文章主要介绍了Go语言中的切片(分片)slice详细说明 ,需要的朋友可以参考下
    2022-04-04
  • 详解Go语言中select语句的常见用法

    详解Go语言中select语句的常见用法

    这篇文章主要是来和大家介绍一下Go语言中select 语句的常见用法,以及在使用过程中的注意事项,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-07-07
  • go标准库net/http服务端的实现示例

    go标准库net/http服务端的实现示例

    go的http标准库非常强大,本文主要介绍了go标准库net/http服务端,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07

最新评论