欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

go 基础

程序员文章站 2022-03-25 16:24:42
变量声明 // var 变量名 变量类型 var name string // 批量声明 var ( a string b int ) // 初始化 var 变量名 类型 = 表达式 // 一次初始化多个 var a, b = 1, 2 // 变量推导,可以省略类型,根据右边定义的值自动推导类型 v ......

变量声明

  • // var 变量名  变量类型
    var name string
  • // 批量声明
    var (
        a string
        b int
    )  
  • //  初始化
    var 变量名 类型  =  表达式
    //   一次初始化多个
    var a, b = 1, 2
  • //  变量推导,可以省略类型,根据右边定义的值自动推导类型
    var a = 123
  • // 短变量声明,一般用于函数内部,不能在函数外使用
    a := 100
  • // 匿名变量,用 _ 表示   用于获取多个值时忽略某个值
    
    package main
    
    import "fmt"
    
    func qwer() (int, string) {
        return 1, "haha"
    }
    
    func main()  {
        a, _ := qwer()
        _, b := qwer()
        fmt.println("a=", a)
        fmt.println("b=", b)
    }

常量

  • // const  常量名 = xxx
    const a = 1
  • // 多个常量
    
    const (
        b = 12
        c = 34
    )
    
    // const同时声明多个常量时,如果省略了值则表示和上面一行的值相同
    
    const (
        d = 12
        e 
    )

iota

iota是go语言的常量计数器,只能在常量的表达式中使用

  • // iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。
    const ( a = iota // 0 b // 1 ) const c = iota // 0
  • // demo1  使用 _ 跳过某些值
    const (
            n1 = iota //0
            n2        //1
            _
            n4        //3
        )
    
    
    // demo2  iota声明中间插队
    const (
            n1 = iota //0
            n2 = 100  //100
            n3 = iota //2
            n4        //3
        )
    
    
    /* demo3  
    定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)
    */
    const (
            _  = iota
            kb = 1 << (10 * iota)
            mb = 1 << (10 * iota)
            gb = 1 << (10 * iota)
            tb = 1 << (10 * iota)
            pb = 1 << (10 * iota)
        )
    
    
    // demo4  多个iota定义在一起
    const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
        )

 

参考 https://www.liwenzhou.com/posts/go/go_menu/ 整理记录