Go语言学习笔记(二):条件语句

本文介绍了Go语言中的条件语句,包括if语句的基本用法及实例,并深入探讨了Go特有的select语句,展示了其如何用于通信操作的案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Go语言条件语句                    

  • if 语句

    • 语法:布尔表达式可以是多个的组合,布尔表达式可以用括号括起来,也可以不用括起来

                  if 布尔表达式{

                        /* 在布尔表达式为true时执行 */

                  }

    • 实例

      package main
      
      import "fmt"
      
      func main(){
      
          var a int = 10
      
          var b int = 50
      
          if a > 5 && b > 40 {
      
                fmt.Printf("a 大于 5,b 大于40\n" )
      
          }
      
      }

       

  • if ... else语句,if嵌套语句,switch语句和其他的语言上没有差别,用法也没啥差别,可以参照上面的if语句。

  • 但是Go语言有和其他语言不同的条件语句 select 语句:select类似于用于通信的switch语句,每个case必须有通讯操作(发送or接收),select随机执行一个可运行的case,如果没有可运行的case,则会阻塞,直到有可运行的case为止,因此,一个默认的case子句是必须的。

  • 语法

        select {

                case communication clause  :

                       statement(s);      

                case communication clause  :

                       statement(s);

                /* 你可以定义任意数量的 case */

                default : /* 可选 */

                       statement(s);

        }

  • 实例

package main

        import "fmt"

        func main() {

                var c1, c2, c3 chan int

                var i1, i2 int

                select {

                    case i1 = <-c1:

                        fmt.Printf("received ", i1, " from c1\n")

                    case c2 <- i2:

                        fmt.Printf("sent ", i2, " to c2\n")

                    case i3, ok := (<-c3):  // same as: i3, ok := <-c3

                        if ok {

                                fmt.Printf("received ", i3, " from c3\n")

                        } else {

                                fmt.Printf("c3 is closed\n")

                        }

                    default:

                        fmt.Printf("no communication\n")

            }

        }

        输出为:no communication

关于 "<-"的用法,可以参考:https://blog.youkuaiyun.com/whatday/article/details/74453089

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值