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++     
       }  
    }



  • 相关阅读:
    基于Hadoop的改进Apriori算法
    iOS 访问URL转码
    第一次进入应用图片轮播效果
    购物篮模型&Apriori算法
    Ionicons的使用
    如何在 Eclipse 中使用命令行
    Eclipse输入命令行参数
    CHAR,TCHAR,WCHAR 三者的区别与转换
    函数名、变量前后的_(一个下划线)、__(两个下划线)分别有什么用
    java爬虫简单实现
  • 原文地址:https://www.cnblogs.com/01black-white/p/9732504.html
Copyright © 2011-2022 走看看