go语言最佳实践

Golang最佳实践

  • 局部变量使用:=方式进行初始化声明,全局变量使用var进行声明。

    //全局变量var声明
    var globalVar1, globalVar2 int
    var (
    	gV3 bool = true//同时进行初始化
    	gV4 string = "Hello Global"
    )
    
    //局部变量使用简洁的初始化声明
    a, b := 1, 2
    fmt.Println(a, b)
    
    
  • string属于值类型,存储在栈内存上,赋值的时候会进行值拷贝,下面c和d两个字符串的地址不同。

    c := "string"
    d := c
    fmt.Println(&c == &d)//false
    
  • 关于const常量和iota

    iota,特殊常量,可以认为是一个可以被编译器修改的常量。
    iota 在const关键字出现时将被重置为0(const 内部的第一行之前),const中每新增一行常量声明将使 iota 计数一次,因此iota 可理解为 const 语句块中的行索引。

    const (
    	a   = 1                  //1 (iota=0)
    	b                        //1 (iota=1,同上一行,相当于写b=1)
    	c   = b + iota           //3 (iota=2,b=1)
    	d                        //4 (iota=3,同上一行,相当于写b+iota,b=1)
    	e                        //5 (iota=4,同上一行,相当于写b+iota,b=1)
    	f   = "last one but one" //  (iota=5)
    	end = iota               //6 (iota=6)
    )
    fmt.Println(a, reflect.TypeOf(a))
    fmt.Println(b, reflect.TypeOf(b))
    fmt.Println(c, reflect.TypeOf(c))
    fmt.Println(d, reflect.TypeOf(d))
    fmt.Println(e, reflect.TypeOf(e))
    fmt.Println(f, reflect.TypeOf(f))
    fmt.Println(end, reflect.TypeOf(end))
    /* 
    输出:
    1 int
    1 int
    3 int
    4 int
    5 int
    last one but one string
    6 int
    */
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值