美文网首页
go学习第三天

go学习第三天

作者: 三郎ZFM | 来源:发表于2019-02-16 00:33 被阅读0次

    go
    变量使用 var 开头,常量使用const开头,var可以省略 const不能省略,且在声明的时候就给出值。

    iota 是一个特殊的常量,在const中每新增加一行,自增一(类似一个行计数器):

     const (
                a = iota   //0
                b          //1
                c          //2
                d = "ha"   //独立值,iota += 1
                e          //"ha"   iota += 1
                f = 100    //iota +=1
                g          //100  iota +=1
                h = iota   //7,恢复计数
                i          //8
        )
    

    运算符包括:
    算术运算:+ - * / % ++ --
    关系运算: > < == != >= <=
    逻辑运算:&& || !
    位运算 : & | ^ >> <<
    赋值运算: = += -= *= /= %= <<= >>= &= |= ^=
    取地址和取值运算:& *


    条件表达式:

    1、if 布尔表达式 {
    }

    2、if 布尔表达式 {
    if 布尔表达式 {
    }
    }
    3、if 布尔表达式{
    }else{
    }

    4、switch var1 {
    case val1:
    ...
    case val2:
    ...
    default:
    ...
    }
    switch 条件是可选的,可以去掉,如以上的var1可以省略。
    switch还可以多条件匹配,如:
    switch{
    case 1,2,3,4:
    ....
    default:
    .....
    }
    switch语句里,每个case后不需要break,匹配到一个case后其后的case自动跳过,不执行。如果想要执行后面的case可以在当前case的最后加上“fallthrough"
    举例:

    switch {
        case false:
                fmt.Println("1、case 条件语句为 false")
                fallthrough
        case true:
                fmt.Println("2、case 条件语句为 true")
                 if ... {                            
                    break                   //这种情况下break执行后,下面的case就不会执行了
                }
                fallthrough
        case false:
                fmt.Println("3、case 条件语句为 false")
                fallthrough
        case true:
                fmt.Println("4、case 条件语句为 true")
        case false:
                fmt.Println("5、case 条件语句为 false")
                fallthrough
        default:
                fmt.Println("6、默认 case")
        }
    

    以上执行结果为:
    2、case 条件语句为 true
    3、case 条件语句为 false
    4、case 条件语句为 true

    Type Switch 是switch的特殊情况,用于对一个接口类型进行判断。举例如下:

    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("未知型")     
       }   
    }
    

    相关文章

      网友评论

          本文标题:go学习第三天

          本文链接:https://www.haomeiwen.com/subject/lbgmeqtx.html