zoukankan      html  css  js  c++  java
  • Go常见语句

    集中常见的条件判断语句

    语句描述
    if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。
    if...else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。
    if 嵌套语句 你可以在 ifelse if 语句中嵌入一个或多个 ifelse if 语句。
    switch 语句 switch 语句用于基于不同条件执行不同动作。
    select 语句 select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。
    if 布尔表达式 {
       /* 在布尔表达式为 true 时执行 */
    }

    **与C语言等不同的是在if后面的布尔表达式没有括号
    eg:
    package main

    import "fmt"

    func main() {
        var a int = 10
        var b float32 = 10.1

        if a < 20 {
            fmt.Println("a 小于 20 ")
        }
        fmt.Println("a,b的值为: %d,%f ", a, b)
    }



    switch语句语法:
    switch var1 {
        case val1:
            ...
        case val2:
            ...
        default:
            ...
    }


    select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。

    select语句语法:
    select {
        case communication clause  :
           statement(s);      
        case communication clause  :
           statement(s); 
        /* 你可以定义任意数量的 case */
        default : /* 可选 */
           statement(s);
    }
      • 每个case都必须是一个通信
      • 所有channel表达式都会被求值
      • 所有被发送的表达式都会被求值
      • 如果任意某个通信可以进行,它就执行;其他被忽略。
      • 如果有多个case都可以运行,Select会随机公平地选出一个执行。其他不会执行。
        否则:
        1. 如果有default子句,则执行该语句。
        2. 如果没有default字句,select将阻塞,直到某个通信可以运行;Go不会重新对channel或值进行求值。
    eg:

    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 ")
        case c2 <- i2:
            fmt.Printf("sent ", i2, "to c2 ")
        case i3, ok := (<-c3):
            if ok {
                fmt.Printf("received ", i3, "from c3 ")
            } else {
                fmt.Printf("c3 is closed ")

            }
        default:
            fmt.Printf("no communication ")

        }
    }
    结果为:
        no communication


    循环语句:
    循环类型描述
    for 循环 重复执行语句块
    循环嵌套

    在 for 循环中嵌套一个或多个 for 循环

    控制语句描述
    break 语句 经常用于中断当前 for 循环或跳出 switch 语句
    continue 语句 跳过当前循环的剩余语句,然后继续进行下一轮循环。
    goto 语句 将控制转移到被标记的语句。

    goto 语法格式如下:

    goto label;
    ..
    .
    label: statement;



    eg :
    package main
    
    import "fmt"
    
    func main() {
       /* 定义局部变量 */
       var a int = 10
    
       /* 循环 */
       LOOP: for a < 20 {
          if a == 15 {
             /* 跳过迭代 */
             a = a + 1
             goto LOOP
          }
          fmt.Printf("a的值为 : %d
    ", a)
          a++     
       }  
    }



  • 相关阅读:
    Java 8 新特性之 Stream&forEach&map&filter&limit&sorted&统计函数&Collectors&并行(parallel)程序(转)
    kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
    java8 stream API
    Docker容器CPU、memory资源限制
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    JAVA8之妙用Optional解决判断Null为空的问题
    【王凤鸣 太极缠丝功笔记】第二章
    【精美凉菜】黄瓜腐竹花生豆
    【瓜果篇】黄瓜
    【Teradata UDF】中文按字符查找chs_instr
  • 原文地址:https://www.cnblogs.com/01black-white/p/9732504.html
Copyright © 2011-2022 走看看