• 7. 流程控制


    不同的语言在流程控制方面大同小异,基本上都是 if-else, while, for 还有一些其他循环方式。

    【if-els】

    value := true
    if value {
        fmt.Println("true") 
    } else {
        fmt.Println("false")
    }

    看起来除了没有括号限制,其他基本一样。Go语言的if还提供了可选语句部分:

    if value := true; value {
        fmt.Println("true") 
    } else {
        fmt.Println("false")
    }

    在执行判断之前先运行,value := true这一句,需要注意的是,这时候value只作用于if-else语句中。

    这里有一点很奇怪,Go语言的 { 不能单独一行,以及 } else { 必须在同一行,非常奇怪(后来上网查了一下,这是Go语言强制规定的)。

    【for循环】

    for i := 1; i <= 10; i++ {
        fmt.Printf("i = %d
    ", i)
    }

    和C语言差不多,也没啥好说的。这里的for循环有一个特殊的用法可以实现无限循环:

    for {  
    }

    【break】

    一样

    【continue】

    一样

    【switch】

    value := 2
    switch value {
    case 1:
        fmt.Println("1")
    case 2:
        fmt.Println("2")
    case 3:
        fmt.Println("3")
    case 4:
        fmt.Println("4")
    case 5:
        fmt.Println("5")
    }

    和其他语言也差不多,和if-else一样也没有括号,Go语言的switch自带break,所以不需要每一个case后面带一个break,如果不需要break需要程序继续运行则需要使用fallthrough。

    多个表达式匹配,switch支持一个case多个值,而且支持字符串匹配(太爽了)

    value := "2"
    switch value {
    case "1", "2", "3", "4":
        fmt.Println("1-4")
    case "5":
        fmt.Println("5")
    }
  • 相关阅读:
    (二)php的常量和变量
    关于标签系统的一点想法。
    Linux运维工程师中级面试题
    Linux C 编程内存泄露检测工具(一):mtrace
    掌握sudo的使用
    Scala极速入门
    处理千万级以上的数据提高查询速度的方法
    linux svn服务器搭建、客户端操作、备份与恢复
    select/poll/epoll 对比
    汇编指令和标志寄存器
  • 原文地址:https://www.cnblogs.com/hatsusakana/p/9811030.html
Copyright © 2020-2023  润新知