• go 语言结构控制


    if  else 结构:

    #第一种
    if condition {
    // do something
    }
    #第二种
    if condition {
    // do something
    } else {     
    // do something
    }
    #第三种
    if condition1 {
    // do something
    } else if condition2 {
    // do something else
    }else {
    // catch-all or default
    }
    #注意大括号的位置,都是固定的
    if在condition 中还可以加上赋值语句

     if val := 10; val > max {
     // do something
     }

    switch 结构

    #第一种
    switch var1 {
     case val1:
      ...
     case val2:
      ...
     default:
      ...
    }
    #第二种
     switch {
       case i < 0:
         f1()
       case i == 0:
         f2()
       case i > 0:
         f3()
     }
    
     #第三种
    
     
    
    switch result := calculate(); {
      case result < 0:
        ...
      case result > 0:
        ...
      default:
        // 0
    }

    for 循环

    #第一种
    for i:=0; i<5; i++ {
        for j:=0; j<10; j++ {
            println(j)
        }
    }    
    #第二种
    for a < b {
          a++
          fmt.Printf("a 的值为: %d
    ", a)
    }
    # 类似其他语言for和while
    无限循环
    for true {} 或者for {} 这种内部需要有条件判断来退出循环

     for range 结构

    这是 Go 特有的一种的迭代结构,您会发现它在许多情况下都非常有用。它可以迭代任何一个集合(包括数组和 map,详见第 7 和 8 章)。语法上很类似其它语言中 foreach 语句,但您依旧可以获得每次迭代所对应的索引。一般形式为: for ix, val := range coll { }  。要注意的是, val  始终为集合中对应索引的值拷贝,因此它一般只具有只读性质,对它所做的任何修改都不会影响到集合中原有的值(译者注:如果  val  为指针,则会产生指针的拷贝,依旧可以修改集合中的原值)

    func main() {
        s :="hello world"
        for in,va := range s{
            fmt.Print(in,va,"
    ")
        }
    } #va 索引值的拷贝
    0 104
    1 101
    2 108
    3 108
    4 111
    5 32
    6 119
    7 111
    8 114
    9 108
    10 100

      关键字fallthrough

    在switch语句中,如果一个case语句后面加了fallthrough那么会直接执行下一个case里面的内容

    func main() {
        switch Num:=1;{
        case 0 <= Num && Num <= 3:
            fmt.Printf("0-3")
            fallthrough
        case 4 <= Num && Num <= 6:
            fmt.Printf("4-6")
        case 7 <= Num && Num <= 9:
            fmt.Printf("7-9")
        }
    }
    0-34-6
  • 相关阅读:
    django-高级
    django-模板
    django-视图
    django笔记一
    redis、mysql、mongodb数据库
    Scrapy-redis分布式+Scrapy-redis实战
    python2 'ascii'编码问题
    【java8新特性】方法引用
    java浮点数运算无法精确的问题
    java中Array和ArrayList区别
  • 原文地址:https://www.cnblogs.com/tigerzhouv587/p/11376965.html
Copyright © 2020-2023  润新知