zoukankan      html  css  js  c++  java
  • GO语言学习(十)Go 语言条件语句

    Go 语言提供了以下几种条件判断语句:

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

    语法

    Go 编程语言中 if 语句的语法如下:

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

    Go 编程语言中 if...else 语句的语法如下:

    if 布尔表达式 {
       /* 在布尔表达式为 true 时执行 */
    } else {
      /* 在布尔表达式为 false 时执行 */
    }
    

    Go 编程语言中 if...else 语句的语法如下:

    if 布尔表达式 1 {
       /* 在布尔表达式 1 为 true 时执行 */
       if 布尔表达式 2 {
          /* 在布尔表达式 2 为 true 时执行 */
       }
    }
    

    Go 编程语言中 switch 语句的语法如下:

    switch var1 {
        case val1:
            ...
        case val2:
            ...
        default:
            ...
    }
    

    switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。。

    switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break

    Type Switch

    switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际存储的变量类型。

    Type Switch 语法格式如下:

    switch x.(type){
        case type:
           statement(s);      
        case type:
           statement(s); 
        /* 你可以定义任意个数的case */
        default: /* 可选 */
           statement(s);
    }
    

    实例

    package main
    
    import "fmt"
    
    func main() {
       var x interface{}
         
       switch i := x.(type) {
          case nil:      
             fmt.Printf(" x 的类型 :%T",i)                
          case int:      
             fmt.Printf("x 是 int 型")                       
          case float64:
             fmt.Printf("x 是 float64 型")           
          case func(int) float64:
             fmt.Printf("x 是 func(int) 型")                      
          case bool, string:
             fmt.Printf("x 是 bool 或 string 型" )       
          default:
             fmt.Printf("未知型")     
       }   
    }
    

    以上代码执行结果为:

    x 的类型 :<nil>
    

      

  • 相关阅读:
    AdvDataList分页 例码
    问一个关于生成静态页面的问题
    使用XMLDataSource简单实现多级下拉菜单
    简单的封装一个HTML 弹出对话框的空间
    JS 语言强大, 动态修改标准库
    Eclipse IDE 学习
    分布式程序的开发
    Http request Post pk Put
    Forward: X Forwarding with Putty on Windows
    转载: 颠覆了对于design 的认识
  • 原文地址:https://www.cnblogs.com/yuming1983/p/9733117.html
Copyright © 2011-2022 走看看